@import url('https://fonts.googleapis.com/css2?family=Noto+Sans+KR:wght@400;500;600;700&family=Noto+Serif+KR:wght@400;500;600&display=swap');
:root{color-scheme:dark;--bg:#181818;--surface:#202020;--raised:#2a2a2a;--ink:#eeeeee;--muted:#a8a8a8;--line:#ffffff13;--accent:#b9b9b9;--accent-ink:#1c1c1c;--bubble:#323232;--user:#aaaaaa;--danger:#b2b2b2;--reader-size:16px;--reading:1.9}
:root[data-theme=light]{color-scheme:light;--bg:#f1f1f1;--surface:#fafafa;--raised:#e8e8e8;--ink:#2b2b2b;--muted:#717171;--line:#37373720;--accent:#686868;--accent-ink:#f9f9f9;--bubble:#ebebeb;--user:#5f5f5f;--danger:#575757}
*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink);font:14px/1.65 'Noto Sans KR',sans-serif}button,input,textarea,select{font:inherit}button,a,input,textarea,select{-webkit-tap-highlight-color:transparent}button{cursor:pointer;color:inherit;background:none;border:0}button:disabled{opacity:.45;cursor:default}button:focus-visible,a:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible{outline:2px solid var(--accent);outline-offset:4px}a{color:inherit;text-decoration:none}h1,h2,h3,p{margin:0}h1,h2,.serif{font-family:'Noto Serif KR',serif;font-weight:500}img{max-width:100%;display:block}svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round;flex-shrink:0}.muted{color:var(--muted)}.tiny{font-size:12px}.eyebrow{font-size:10px;font-weight:600;letter-spacing:2.8px;text-transform:uppercase;color:var(--accent)}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}.skip-link{position:fixed;top:-60px;left:16px;z-index:100;background:var(--accent);color:var(--accent-ink);padding:10px}.skip-link:focus{top:10px}
.shell{max-width:1440px;margin:auto;padding:0 56px}.header{height:88px;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;gap:30px}.brand{display:flex;align-items:center;gap:12px;letter-spacing:3px;font-size:13px;font-weight:600;white-space:nowrap}.brand-mark{height:28px;width:22px;border:1px solid var(--accent);border-radius:14px 14px 0 0;position:relative}.brand-mark:after{content:'';position:absolute;bottom:0;left:9px;height:17px;border-left:1px solid var(--accent)}.nav{display:flex;gap:32px;align-items:stretch;height:100%}.nav button{display:flex;align-items:center;gap:8px;position:relative;font-size:12px;color:var(--muted)}.nav button.active{color:var(--ink)}.nav button.active:after{content:'';position:absolute;bottom:0;left:0;right:0;height:2px;background:var(--accent)}.nav svg{width:17px;height:17px}.header-right{font-size:10px;letter-spacing:1px;color:var(--muted);display:flex;gap:8px;align-items:center}.status-dot{width:5px;height:5px;border-radius:50%;background:#adadad}.mobile-nav{display:none}.primary,.secondary,.quiet{min-height:46px;padding:11px 22px;border-radius:8px;display:inline-flex;align-items:center;justify-content:center;gap:10px;font-size:13px;font-weight:500}.primary{background:var(--accent);color:var(--accent-ink)}.primary:hover{filter:brightness(1.09)}.secondary{border:1px solid var(--line);background:var(--raised)}.secondary:hover{border-color:var(--accent)}.quiet{color:var(--muted);padding:8px 12px}.wide{width:100%}.button-row{display:flex;gap:10px;align-items:center}.tag{border:1px solid #ffffff25;border-radius:20px;padding:5px 12px;font-size:10px;white-space:nowrap}.tags{display:flex;gap:7px;flex-wrap:wrap}.section-heading{display:flex;align-items:end;justify-content:space-between;gap:20px;margin-bottom:22px}.section-heading h2{font-size:25px;letter-spacing:-.6px}.section-heading .eyebrow{margin-bottom:6px}.text-button{font-size:12px;display:flex;align-items:center;gap:8px;color:var(--muted)}.text-button:hover{color:var(--accent)}.text-button svg{width:15px}.page{padding:42px 0 64px}.page-head{margin-bottom:32px}.page-head h1{font-size:38px;margin:7px 0 12px}.page-head p{color:var(--muted);font-size:13px}.footer{border-top:1px solid var(--line);padding:25px 0 38px;margin-top:48px;display:flex;justify-content:space-between;font-size:10px;letter-spacing:.4px;color:var(--muted)}
.home{padding-top:32px}.hero{position:relative;min-height:560px;border-radius:16px;overflow:hidden;background:#191919;display:flex;align-items:center}.hero-image{position:absolute;inset:0 0 0 35%;background:url('assets/seoha.png') center 28%/cover}.hero:after{content:'';position:absolute;inset:0;background:linear-gradient(90deg,#191919 9%,#191919ee 29%,#19191933 70%,#19191911),linear-gradient(0deg,#19191980,transparent 55%)}.hero-copy{position:relative;z-index:1;padding:52px 48px;color:#efefef;max-width:560px}.hero h1{font-size:clamp(42px,4.7vw,65px);line-height:1.35;letter-spacing:-2px;margin:18px 0 20px}.hero-copy .desc{color:#c4c4c4;font-size:14px;line-height:1.95}.hero-copy .tags{margin:24px 0 30px}.hero .primary{background:#b9b9b9;color:#1c1c1c;min-width:170px}.hero .quiet{color:#e5e5e5}.hero-corner{position:absolute;z-index:1;bottom:30px;right:30px;font-size:10px;letter-spacing:2px;color:#e0e0e0}.hero-count{position:absolute;right:30px;top:30px;z-index:1;color:#ffffff99;font-size:10px;letter-spacing:3px}.home-strip{padding:26px 0 32px;display:flex;justify-content:space-between;gap:20px;border-bottom:1px solid var(--line);margin-bottom:36px}.home-strip p{font-family:'Noto Serif KR',serif;font-size:17px}.home-strip span{color:var(--muted);font-size:12px}.shelf{display:grid;grid-template-columns:1.15fr 1fr 1fr;gap:20px}.story-card,.editorial-card{border:1px solid var(--line);border-radius:12px;overflow:hidden;text-align:left;background:var(--surface);padding:0}.story-card .card-image{height:220px;overflow:hidden}.story-card img{width:100%;height:100%;object-fit:cover;object-position:center 28%;transition:transform .4s}.story-card:hover img{transform:scale(1.03)}.card-copy{padding:20px}.card-copy h3{font-size:18px;margin:5px 0 7px}.card-copy p{font-size:12px;color:var(--muted)}.card-meta{display:flex;gap:12px;font-size:10px;color:var(--muted);margin-top:20px}.editorial-card{position:relative;min-height:340px}.editorial-card>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}.editorial-card:after{content:'';position:absolute;inset:0;background:linear-gradient(0deg,#181818ef,transparent)}.editorial-copy{position:absolute;bottom:24px;left:24px;right:24px;z-index:1;color:#e9e9e9}.editorial-copy h3{font:22px/1.5 'Noto Serif KR',serif;margin:10px 0}.editorial-copy p{font-size:12px;color:#d4d4d4}.editorial-copy .eyebrow{color:#bbbbbb}.continue-card{display:flex;align-items:center;gap:18px;padding:18px 20px;border:1px solid var(--line);border-radius:12px;background:var(--surface);margin:26px 0}.continue-card img{width:58px;height:68px;border-radius:6px;object-fit:cover}.continue-card>div{flex:1;min-width:0}.continue-card p{font-size:12px;color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:65vw}.continue-card strong{display:block;font-size:14px;margin:2px 0 4px}.continue-card .eyebrow{font-size:8px}.filter-row{display:flex;gap:8px;margin-bottom:24px;flex-wrap:wrap}.filter-row button{border:1px solid var(--line);padding:7px 16px;border-radius:24px;font-size:12px;color:var(--muted)}.filter-row button.active{background:var(--ink);color:var(--bg);border-color:var(--ink)}.search-box{display:flex;align-items:center;gap:10px;border:1px solid var(--line);border-radius:10px;padding:11px 15px;background:var(--surface);max-width:380px;margin-bottom:24px}.search-box input{background:transparent;border:0;color:var(--ink);width:100%;outline:none}.search-box svg{color:var(--muted);width:17px}.empty{padding:55px 24px;text-align:center;border:1px dashed var(--line);border-radius:14px}.empty svg{width:32px;height:32px;color:var(--accent);margin-bottom:15px}.empty h3{font-size:17px}.empty p{color:var(--muted);font-size:13px;margin:10px auto 23px;max-width:330px}.history-list{display:grid;gap:12px}.history-row{display:flex;gap:18px;padding:20px;background:var(--surface);border:1px solid var(--line);border-radius:12px;align-items:center}.history-open{display:flex;align-items:center;gap:18px;flex:1;min-width:0;text-align:left;padding:0}.history-open img{width:62px;height:80px;object-fit:cover;border-radius:7px}.history-open>div{min-width:0;flex:1}.history-open h3{font-size:15px;margin:4px 0}.history-open p{font-size:12px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:700px}.history-open small{color:var(--muted);font-size:10px}.iconbtn{height:36px;width:36px;display:inline-grid;place-items:center;border-radius:50%;color:var(--muted);flex-shrink:0}.iconbtn:hover{background:var(--raised);color:var(--ink)}
.detail{display:grid;grid-template-columns:1fr 1fr;gap:64px;padding:40px 0 30px;align-items:start}.detail-cover{height:650px;position:relative;border-radius:14px;overflow:hidden;background:#222222}.detail-cover>img{width:100%;height:100%;object-fit:cover}.detail-cover:after{content:'';position:absolute;inset:0;background:linear-gradient(0deg,#1b1b1bc9,transparent 55%)}.detail-cover .cover-quote{position:absolute;z-index:1;bottom:35px;left:32px;right:25px;font:25px/1.8 'Noto Serif KR',serif;color:#efefef}.detail-copy{padding:20px 0}.detail-copy h1{font-size:46px;line-height:1.5;letter-spacing:-1px;margin:16px 0}.detail-copy .lead{font-size:16px;line-height:2;color:var(--muted);margin-bottom:22px}.detail-copy .tags{margin-bottom:25px}.detail-copy .tag{border-color:var(--line);color:var(--muted)}.detail-block{border-top:1px solid var(--line);padding:23px 0}.detail-block h3{font-size:12px;margin-bottom:10px}.detail-block p{font-size:13px;color:var(--muted);line-height:1.9}.character-mini{display:flex;gap:15px;align-items:center;margin-bottom:14px}.character-mini img{width:48px;height:48px;border-radius:50%;object-fit:cover;object-position:50% 20%}.character-mini strong{font-size:14px}.character-mini small{color:var(--muted);font-size:11px;display:block}.detail-actions{display:flex;gap:10px;margin-top:20px}.detail-actions .primary{flex:1}.intro-stage{height:calc(100dvh - 130px);min-height:500px;position:relative;border-radius:14px;overflow:hidden;margin:24px 0;background:#191919}.intro-stage video{width:100%;height:100%;object-fit:cover;opacity:.8}.intro-stage:after{content:'';position:absolute;inset:0;background:linear-gradient(0deg,#181818f0,transparent 80%);pointer-events:none}.intro-top{position:absolute;z-index:2;left:28px;right:28px;top:25px;display:flex;justify-content:space-between;align-items:center;color:#e8e8e8}.intro-copy{position:absolute;bottom:60px;left:24px;right:24px;text-align:center;z-index:2;color:#ededed}.intro-copy h2{font-size:clamp(27px,3vw,42px);line-height:1.8;margin:12px 0 18px}.intro-copy p{color:#c9c9c9;font-size:13px;margin-bottom:26px}.intro-copy .primary{background:#b9b9b9;color:#1c1c1c}.intro-copy .eyebrow{color:#c4c4c4}
.reader{display:grid;grid-template-columns:245px minmax(0,1fr);gap:30px;padding:25px 0;height:calc(100dvh - 88px);min-height:550px}.reader-aside{min-width:0;overflow:auto;scrollbar-width:thin}.reader-portrait{height:310px;position:relative;border-radius:12px;overflow:hidden}.reader-portrait img{width:100%;height:100%;object-fit:cover;object-position:center 25%}.reader-portrait:after{content:'';position:absolute;inset:0;background:linear-gradient(0deg,#181818dc,transparent 70%)}.portrait-caption{position:absolute;bottom:22px;left:22px;z-index:1;color:#ffffff}.portrait-caption h2{font-size:22px;margin:5px 0}.portrait-caption span{font-size:10px;color:#d6d6d6}.aside-title{font-size:11px;color:var(--muted);letter-spacing:.5px;margin:23px 0 10px}.chapter-list{display:grid;gap:3px}.chapter{display:flex;gap:12px;padding:8px 0;color:var(--muted);font-size:11px}.chapter span{font-size:10px;opacity:.6}.chapter.current{color:var(--accent)}.chapter.current:after{content:'지금';margin-left:auto;font-size:9px}.aside-note{font-size:10px;line-height:1.8;color:var(--muted);margin:18px 0}.reader-main{display:flex;flex-direction:column;min-height:0;background:var(--surface);border:1px solid var(--line);border-radius:14px;overflow:hidden}.chat-head{display:flex;justify-content:space-between;align-items:center;padding:17px 22px;border-bottom:1px solid var(--line);flex-shrink:0;gap:10px}.person{display:flex;align-items:center;gap:11px}.avatar{display:block;width:40px;height:40px;border-radius:50%;background:url('assets/seoha.png') center 22%/cover}.person strong{font-size:13px}.person p{font-size:10px;color:var(--muted);margin-top:2px}.chat-tools{display:flex;align-items:center;gap:3px}.chat-tools .iconbtn{width:32px;height:32px}.chat-tools svg{width:17px}.chat-log{flex:1;min-height:0;overflow-y:auto;padding:28px 28px 12px;scrollbar-width:thin;scrollbar-color:var(--raised) transparent;overflow-anchor:none;font-size:var(--reader-size)}.story-turn{margin:0 0 28px;clear:both;position:relative}.message{white-space:pre-wrap;overflow-wrap:anywhere;line-height:var(--reading);font-size:inherit}.story-turn .message{margin:0 0 17px}.story-turn .narration{font-size:.87em;color:var(--muted);padding:2px 0;max-width:95%;line-height:2.05}.story-turn .dialogue{display:table;max-width:88%;padding:12px 17px;background:var(--bubble);border-radius:3px 17px 17px 17px;color:var(--ink)}.message.user{display:table;max-width:83%;margin:8px 0 29px auto;background:var(--user);color:#1a1a1a;padding:12px 17px;border-radius:17px 3px 17px 17px;font-size:.95em}:root[data-theme=light] .message.user{color:#ffffff}.turn-actions{display:flex;gap:6px;margin:4px 0 0;opacity:.5}.turn-actions:hover{opacity:1}.turn-actions button{font-size:10px;color:var(--muted);display:flex;gap:5px;align-items:center;padding:5px}.turn-actions svg{width:13px;height:13px}.turn-actions .saved{color:var(--accent)}.streaming .message:last-child:after{content:'▍';color:var(--accent);animation:blink 1s steps(2) infinite}.live-composer{border-top:1px solid var(--line);padding:14px 22px 12px;flex-shrink:0;background:var(--surface)}.live-composer textarea{display:block;width:100%;resize:none;min-height:64px;max-height:140px;border:1px solid var(--line);border-radius:10px;background:var(--bg);color:var(--ink);padding:12px 15px;font:14px/1.7 'Noto Sans KR',sans-serif}.live-composer textarea::placeholder{color:var(--muted);opacity:.7}.composer-bottom{display:flex;justify-content:space-between;align-items:center;margin-top:9px;gap:12px}.composer-bottom>span{font-size:10px;color:var(--muted)}.composer-bottom button{min-height:36px;padding:6px 17px;font-size:12px}.composer-note{text-align:center;color:var(--muted);font-size:9px;margin-top:7px;opacity:.7}.suggestion-heading{display:flex;align-items:center;justify-content:space-between;font-size:10px;color:var(--muted);margin-bottom:6px}.suggestion-refresh{color:var(--muted);font-size:10px;padding:2px 0}.suggestion-refresh:hover{color:var(--accent)}.reply-suggestion{margin-bottom:11px}.reply-suggestion>button{display:flex;justify-content:space-between;align-items:center;gap:10px;text-align:left;border:1px solid var(--line);background:var(--raised);border-radius:9px;padding:9px 12px;width:100%;font-size:12px;color:var(--ink)}.reply-suggestion>button:hover{border-color:var(--accent)}.reply-suggestion small{white-space:nowrap;color:var(--muted);font-size:9px}.connect-banner{background:#7b7b7b20;padding:12px 22px;font-size:12px}.connect-banner button{color:var(--accent);text-decoration:underline}.alert,#chat-error:not(:empty),#config-error:not(:empty){border:1px solid #92929245;border-radius:8px;background:#61616120;padding:10px 12px;color:var(--danger);font-size:12px;margin-bottom:10px}.search-chat{display:flex;gap:8px;padding:10px 22px;border-bottom:1px solid var(--line)}.search-chat input{background:var(--bg);color:var(--ink);border:1px solid var(--line);border-radius:6px;padding:7px 10px;width:100%}.search-chat span{font-size:10px;white-space:nowrap;align-self:center;color:var(--muted)}mark{background:#afafaf55;color:inherit;border-radius:2px}
.collection{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:22px}.memory-card{text-align:left;border:1px solid var(--line);background:var(--surface);padding:8px 8px 18px;border-radius:12px;overflow:hidden;position:relative}.memory-card h3{font-size:14px;margin:15px 10px 5px}.memory-card p{font-size:11px;color:var(--muted);margin:0 10px}.media-thumb{position:relative;height:220px;border-radius:7px;overflow:hidden;background:var(--raised)}.media-thumb img{width:100%;height:100%;object-fit:cover}.media-kind{position:absolute;bottom:10px;left:10px;background:#1b1b1bce;color:#eaeaea;padding:3px 9px;border-radius:4px;font-size:10px}.locked-art{height:220px;display:grid;place-content:center;justify-items:center;gap:12px;background:radial-gradient(ellipse at center,#5c5c5c24,transparent),var(--raised);border-radius:7px;color:var(--muted)}.locked-art svg{width:24px;height:24px;opacity:.7}.locked-art small{font-size:10px}.memory-card:disabled{opacity:1}.memory-card:disabled .locked-art{opacity:.7}.media-unlock{display:block;text-align:left;width:270px;max-width:90%;border:1px solid var(--line);border-radius:12px;background:var(--raised);padding:6px;margin:14px 0 24px}.media-unlock .media-thumb{height:155px}.unlock-caption{display:grid;padding:10px;gap:3px}.unlock-caption small{font-size:9px;color:var(--accent)}.unlock-caption strong{font-size:13px}.unlock-caption>span{font-size:10px;color:var(--muted)}.unlocked-media{width:100%;max-height:64dvh;object-fit:contain;border-radius:8px;background:#161616}.collection-progress{background:var(--raised);border-radius:6px;height:4px;max-width:320px;margin-top:18px;overflow:hidden}.collection-progress span{display:block;height:100%;background:var(--accent)}
.settings-layout{display:grid;grid-template-columns:1fr 1fr;gap:24px}.settings-panel{padding:26px;border:1px solid var(--line);border-radius:12px;background:var(--surface)}.settings-panel h3{font-size:15px;margin-bottom:5px}.settings-panel>p{font-size:12px;color:var(--muted);margin-bottom:24px}.setting-row{padding:18px 0;border-bottom:1px solid var(--line)}.setting-row:last-child{border:0}.setting-row label,.setting-row .setting-label{display:block;font-size:12px;margin-bottom:9px}.setting-row small{display:block;color:var(--muted);font-size:10px;margin-top:8px}.segmented{display:flex;gap:5px;border-radius:8px;background:var(--bg);padding:4px}.segmented button{flex:1;padding:8px 10px;font-size:12px;color:var(--muted);border-radius:5px}.segmented button.selected{background:var(--raised);color:var(--ink)}.settings-panel input[type=text],.settings-panel textarea{background:var(--bg);color:var(--ink);border:1px solid var(--line);padding:10px 12px;border-radius:8px;width:100%;resize:vertical}.setting-row input[type=range]{width:100%;accent-color:var(--accent)}.settings-link{display:flex;align-items:center;justify-content:space-between;width:100%;text-align:left;padding:16px 0;border-bottom:1px solid var(--line);font-size:13px}.settings-link:last-child{border:0}.settings-link small{display:block;color:var(--muted);font-size:10px;margin-top:4px}.connection-line{display:flex;align-items:center;gap:8px;font-size:12px}.local-note{font-size:11px;color:var(--muted);padding:20px 0}.reading-preview{background:var(--bg);border-radius:9px;padding:18px;margin-top:16px;font-size:var(--reader-size)}.reading-preview p:first-child{font-size:.85em;color:var(--muted);margin-bottom:12px}.reading-preview p:last-child{background:var(--bubble);border-radius:3px 12px 12px;padding:10px 13px;display:table}
dialog{border:1px solid var(--line);background:var(--surface);color:var(--ink);width:560px;max-width:calc(100vw - 28px);max-height:88dvh;padding:28px;border-radius:16px;box-shadow:0 30px 120px #00000066}dialog::backdrop{background:#070707b3;backdrop-filter:blur(7px)}.modal-head{display:flex;justify-content:space-between;align-items:center;gap:20px;margin-bottom:20px}.modal-head h2{font-size:23px}.modal-head>button{font-size:27px;color:var(--muted)}dialog p{font-size:12px;color:var(--muted);margin:14px 0;line-height:1.9}.control{display:grid;gap:8px;margin:18px 0;font-size:12px}.control input,.control select{background:var(--bg);color:var(--ink);border:1px solid var(--line);border-radius:8px;padding:12px;width:100%}.control select{appearance:auto}.bookmark-item{border-bottom:1px solid var(--line);padding:16px 0}.bookmark-item p{white-space:pre-wrap;max-height:200px;overflow:auto;color:var(--ink)}.bookmark-item button{font-size:11px;color:var(--accent)}.help-list{padding-left:18px;color:var(--muted);font-size:12px;line-height:2}.status-card{padding:20px;background:var(--raised);border-radius:10px;margin:18px 0}.status-card strong{display:block;font-size:14px}.status-card p{margin-bottom:0}#toast{position:fixed;bottom:30px;left:50%;transform:translate(-50%,20px);opacity:0;pointer-events:none;z-index:99;background:var(--ink);color:var(--bg);border-radius:30px;padding:11px 23px;font-size:12px;transition:.2s;max-width:90vw;box-shadow:0 8px 30px #00000044}#toast.show{transform:translate(-50%,0);opacity:1}@keyframes blink{50%{opacity:0}}
@media(min-width:1500px){.hero{min-height:620px}.reader{grid-template-columns:280px minmax(0,1fr)}}
@media all{.shell{padding:0 28px}.header-right{display:none}.hero-copy{padding:40px 32px}.shelf{grid-template-columns:1fr 1fr}.shelf>.editorial-card:last-child{display:none}.reader{grid-template-columns:200px minmax(0,1fr);gap:20px}.reader-portrait{height:280px}.detail{gap:32px}.detail-cover{height:580px}.detail-copy h1{font-size:38px}.collection{gap:14px}.media-thumb,.locked-art{height:180px}}
@media all{.shell{padding:0 20px}.header{height:70px}.brand{font-size:11px;letter-spacing:2px}.brand-mark{width:19px;height:24px}.brand-mark:after{left:8px;height:15px}.nav{display:none}.header-right{display:flex;font-size:8px}.mobile-nav{position:fixed;z-index:10;bottom:0;left:0;right:0;display:flex;justify-content:space-around;padding:10px 12px max(12px,env(safe-area-inset-bottom));background:var(--surface);border-top:1px solid var(--line)}.mobile-nav button{display:grid;justify-items:center;gap:3px;font-size:9px;color:var(--muted);min-width:60px}.mobile-nav .active{color:var(--accent)}.mobile-nav svg{width:20px}.shell:not(.chat-shell){padding-bottom:70px}.chat-shell .mobile-nav{display:none}.chat-shell .header{height:56px}.chat-shell .header-right{display:none}.chat-shell .header .brand{font-size:10px}.chat-shell .header .nav{display:flex;gap:12px}.chat-shell .header .nav button{font-size:10px}.chat-shell .header .nav button:nth-child(n+3){display:none}.chat-shell .nav svg{display:none}.home{padding-top:20px}.hero{min-height:630px;align-items:flex-end;border-radius:12px}.hero-image{inset:0;background-position:center 22%}.hero:after{background:linear-gradient(0deg,#161616 8%,#161616cc 35%,#16161611 75%)}.hero-copy{padding:28px 23px;width:100%}.hero h1{font-size:41px;margin:13px 0}.hero-copy .desc{font-size:12px}.hero-copy .tags{margin:16px 0 22px}.hero .button-row{gap:4px}.hero .primary{min-width:0;padding:11px 18px}.hero .quiet{font-size:11px}.hero-corner{display:none}.hero-count{top:20px;right:20px}.home-strip{display:block;padding:22px 0}.home-strip p{font-size:15px;margin-bottom:6px}.home-strip span{font-size:11px}.section-heading h2{font-size:22px}.shelf{gap:12px;grid-template-columns:1fr 1fr}.story-card .card-image{height:190px}.editorial-card{min-height:320px}.card-copy{padding:15px}.card-copy h3{font-size:15px}.card-copy p{font-size:11px}.card-meta{font-size:9px;gap:7px}.editorial-copy{left:16px;bottom:20px;right:16px}.editorial-copy h3{font-size:19px}.editorial-copy p{font-size:10px}.continue-card{padding:14px;gap:12px}.continue-card .primary{font-size:11px;padding:8px 12px;min-height:36px}.continue-card img{width:44px;height:56px}.continue-card p{max-width:40vw;font-size:10px}.continue-card strong{font-size:12px}.footer{font-size:9px;gap:16px;margin-top:35px}.footer span:last-child{max-width:140px;text-align:right}.page{padding:27px 0 35px}.page-head h1{font-size:30px}.page-head p{font-size:12px}.history-row{padding:14px;gap:8px}.history-open{gap:12px}.history-open img{width:48px;height:65px}.history-open p{max-width:52vw;font-size:11px}.history-open h3{font-size:13px}.detail{display:flex;flex-direction:column;padding-top:20px;gap:24px}.detail-cover{height:450px;width:100%}.detail-copy{padding:0}.detail-copy h1{font-size:34px}.detail-copy .lead{font-size:14px}.detail-actions{position:sticky;bottom:75px;background:var(--bg);padding:12px 0;z-index:2}.detail-cover .cover-quote{font-size:22px}.intro-stage{height:calc(100dvh - 170px);margin:20px 0;min-height:500px}.intro-top{left:20px;right:20px}.intro-copy{bottom:35px}.intro-copy h2{font-size:27px}.reader{display:block;height:calc(100dvh - 56px);min-height:0;padding:0}.reader-aside{display:none}.chat-shell{padding:0}.chat-shell .header{padding:0 18px}.reader-main{height:100%;border:0;border-radius:0}.chat-head{padding:12px 16px}.avatar{width:34px;height:34px}.chat-log{padding:22px 18px 6px}.story-turn .dialogue{max-width:95%;padding:11px 15px}.story-turn .narration{max-width:100%}.message.user{max-width:90%;padding:11px 15px}.live-composer{padding:11px 15px max(10px,env(safe-area-inset-bottom))}.live-composer textarea{font-size:16px;min-height:55px}.composer-note{font-size:8px;margin-top:5px}.composer-bottom{margin-top:7px}.composer-bottom>span{font-size:9px}.reply-suggestion>button{font-size:11px;padding:8px 10px}.reply-suggestion small{display:none}.reply-suggestion{margin-bottom:9px}.collection{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.media-thumb,.locked-art{height:170px}.memory-card h3{font-size:12px;margin:12px 6px 4px}.memory-card p{font-size:10px;margin:0 6px}.settings-layout{grid-template-columns:1fr}.settings-panel{padding:22px}.search-chat{padding:8px 15px}dialog{padding:22px}.modal-head h2{font-size:21px}#toast{bottom:90px}.chat-shell~#toast{bottom:30px}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;animation:none!important;transition:none!important}}
.starlight-button{border:1px solid var(--line);background:var(--surface);color:var(--ink);border-radius:24px;padding:10px 16px;white-space:nowrap;cursor:pointer}.starlight-button small{font-size:10px;color:var(--muted);margin-left:7px}.story-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:20px}.catalog-cover{position:relative;background:linear-gradient(150deg,var(--story-color),#191919);min-height:300px;display:flex;flex-direction:column;justify-content:space-between;padding:28px;overflow:hidden;color:#ffffff}.catalog-cover img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}.cover-symbol{font-size:14px;letter-spacing:.18em;opacity:.7}.cover-title{font-family:serif;font-size:34px;line-height:1.5;word-break:keep-all;max-width:220px}.catalog-cover small{font-size:10px;letter-spacing:.12em;opacity:.7}.catalog-cover:after{content:'';position:absolute;width:240px;height:240px;border:1px solid #ffffff20;border-radius:50%;right:-70px;top:50px;pointer-events:none}.detail-cover.catalog-cover{min-height:650px}.detail-cover .cover-title{font-size:64px}.text-intro{background:linear-gradient(140deg,var(--story-color),#151515);padding:70px max(24px,calc((100% - 720px)/2));min-height:80vh;color:white}.text-intro h1{font-size:40px}.text-intro>div{margin:40px 0}.text-intro .message{background:#ffffff12;color:#ffffff}.test-ad{background:linear-gradient(135deg,#494949,#262626);padding:40px 25px;border-radius:16px;color:#ffffff;margin:20px 0}.test-ad h2{font-size:32px;line-height:1.5}.wallet-ledger{max-height:260px;overflow:auto}.wallet-ledger>div{display:flex;justify-content:space-between;padding:14px 0;border-bottom:1px solid var(--line);gap:20px}.wallet-ledger small{display:block;color:var(--muted);font-size:11px;margin-top:6px}.history-symbol{width:66px;height:76px;border-radius:10px;display:grid;place-items:center;color:white;font-size:10px;text-align:center;flex-shrink:0}.reader-portrait>.catalog-cover{min-height:350px}.header-right{display:flex!important}.story-grid .card-copy p{min-height:70px}.story-grid .card-meta{flex-wrap:wrap;gap:6px}@media all{.story-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media all{.story-grid{gap:12px}.catalog-cover{min-height:245px;padding:18px}.cover-title{font-size:27px}.story-grid .card-copy{padding:14px}.story-grid h3{font-size:18px}.story-grid .card-copy p{font-size:12px}.starlight-button{padding:8px 10px;font-size:12px}.starlight-button small{display:none}.detail-cover.catalog-cover{min-height:400px}.detail-cover .cover-title{font-size:50px}.text-intro{padding:40px 22px}.text-intro h1{font-size:32px}}
.story-grid .catalog-cover{aspect-ratio:2/3;min-height:0;padding:0}.catalog-cover img{object-position:50% 30%}.catalog-cover:has(img):after{display:none}.portrait-credit{position:absolute;left:0;bottom:0;right:0;padding:70px 28px 24px;background:linear-gradient(transparent,#000000bb);font-size:24px;z-index:1}.portrait-credit small{display:block;margin-top:8px;font-size:11px}.reader-portrait>img{object-position:50% 30%}.history-open>img,.continue-card>img{object-position:50% 30%;object-fit:cover}
.cinema-intro{height:min(800px,calc(100svh - 90px));min-height:590px;position:relative;overflow:hidden;border-radius:16px;background:#141414;color:#ffffff;margin:12px 0}.cinema-images,.cinema-shade,.cinema-frame{position:absolute;inset:0;width:100%;height:100%}.cinema-frame{object-fit:cover;object-position:65% 40%;opacity:0;transition:opacity 1.3s ease,transform 5.4s linear;transform:scale(1.035)}.cinema-frame.active{opacity:1;transform:scale(1)}.cinema-frame[data-frame="1"]{object-position:72% 35%;transform:scale(1.12)}.cinema-frame[data-frame="1"].active{transform:scale(1.05)}.cinema-frame[data-frame="2"]{object-fit:contain;object-position:80% 40%;background:#191919}.cinema-shade{background:linear-gradient(90deg,#0b0b0be8,transparent 85%),linear-gradient(0deg,#0a0a0ae8,transparent 60%);pointer-events:none}.cinema-top,.cinema-bottom,.cinema-copy{position:absolute;z-index:2;left:5%;right:5%}.cinema-top{top:26px;display:flex;justify-content:space-between;align-items:center;gap:16px}.cinema-top small{display:block;font-size:11px;color:#dddddd;margin-top:8px}.cinema-copy{bottom:190px;max-width:650px}.cinema-copy h1{font-size:clamp(30px,4vw,52px);line-height:1.35;word-break:keep-all;margin:18px 0}.cinema-copy>p:last-child{font-size:18px;line-height:1.8;max-width:490px;word-break:keep-all}.cinema-bottom{bottom:30px;display:flex;align-items:center;justify-content:space-between;gap:20px}.cinema-controls{display:flex;align-items:center;gap:12px}.cinema-intro .quiet{color:#eeeeee}.cinema-dots{display:flex;gap:8px}.cinema-dots button{width:50px;height:28px;padding:12px 0;background:none;border:0;cursor:pointer;position:relative}.cinema-dots button:before{content:'';position:absolute;left:0;right:0;top:12px;height:3px;background:#ffffff40}.cinema-dots span{display:block;height:3px;background:#d8d8d8;position:relative;z-index:1}.cinema-dots button[aria-current="true"]:before{background:#ffffff80}@media all{.cinema-intro{height:calc(100svh - 140px);min-height:560px;border-radius:0;margin:0}.cinema-frame{object-position:66% center}.cinema-frame[data-frame="2"]{object-fit:cover;object-position:50% 25%}.cinema-shade{background:linear-gradient(0deg,#0b0b0bf5 8%,#0b0b0b88 48%,#0b0b0b11 80%,#0b0b0b88)}.cinema-copy{bottom:175px}.cinema-copy h1{font-size:30px}.cinema-copy>p:last-child{font-size:15px}.cinema-bottom{flex-direction:column;align-items:stretch;gap:16px}.cinema-controls{justify-content:space-between}.cinema-top{top:18px}.cinema-top>span{max-width:60%;font-size:13px}}@media(prefers-reduced-motion:reduce){.cinema-frame{transition:none;transform:none!important}}
.discovery-controls{border:1px solid var(--line);border-radius:16px;padding:18px 22px;margin:0 0 22px}.discovery-selects{display:flex;gap:20px;align-items:center;flex-wrap:wrap}.discovery-selects label{display:flex;gap:12px;align-items:center;color:var(--muted);font-size:12px}.discovery-selects select{background:var(--bg);border:1px solid var(--line);color:var(--ink);padding:10px 28px 10px 12px;border-radius:8px}.discovery-facets{margin-top:16px}.discovery-facets summary{cursor:pointer;font-size:13px;color:var(--ink);padding:8px 0}.discovery-facets fieldset,.interest-group{border:0;padding:15px 0 0;margin:0}.discovery-facets legend,.interest-group legend{font-size:12px;color:var(--muted);padding-top:15px}.discovery-facets .filter-row,.interest-group .filter-row{margin:6px 0}.result-summary{display:flex;justify-content:space-between;align-items:center;gap:16px;margin:18px 0;font-size:13px}.result-summary small{color:var(--muted);font-size:11px}.discover-card{position:relative;min-width:0;display:flex}.discover-card .story-card{width:100%;height:100%}.card-heart{position:absolute;right:12px;top:12px;z-index:2;border:1px solid #ffffff44;background:#15151588;color:#ffffff;display:grid;place-items:center;width:38px;height:38px;border-radius:50%;cursor:pointer}.card-heart svg{width:19px;height:19px;fill:none;stroke:currentColor;stroke-width:1.6}.card-heart.saved{background:#d2d2d2;color:#292929}.card-heart.saved svg{fill:currentColor}.match-reason{font-size:11px;padding:8px 0;color:var(--accent)}@media all{.discovery-controls{padding:14px}.discovery-selects{gap:12px}.result-summary{align-items:flex-start;flex-direction:column;gap:6px}.card-heart{width:32px;height:32px;right:8px;top:8px}.discovery-selects select{padding-right:14px}}
.memory-totals{display:flex;gap:24px;margin:24px 0;color:var(--muted)}
.memory-totals strong{font-size:24px;color:var(--ink);margin-left:8px}
.collection-story-label{display:flex;align-items:center;gap:12px;margin:24px 0}
.collection-story-label select{background:var(--surface);color:inherit;border:1px solid var(--line,#464646);padding:12px 16px;border-radius:10px;max-width:100%}
.saved-lines{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px;margin:24px 0}
.saved-line{padding:24px;border:1px solid var(--line,#464646);border-radius:16px;background:var(--surface)}
.saved-line-head{display:flex;gap:12px;align-items:center}
.saved-line-head img{width:44px;height:44px;border-radius:50%;object-fit:cover;object-position:50% 25%}
.saved-line-head small{display:block;color:var(--muted);margin-top:5px}
.saved-line>p{white-space:pre-wrap;line-height:1.9;overflow-wrap:anywhere}
.memory-focus{outline:2px solid #acacac;outline-offset:8px;border-radius:12px;animation:memory-focus 4s forwards}
@keyframes memory-focus{0%,70%{outline-color:#acacac}100%{outline-color:transparent}}
@media all{.saved-lines{grid-template-columns:1fr}.saved-line{padding:18px}.collection-story-label{align-items:flex-start;flex-direction:column}}
@media(prefers-reduced-motion:reduce){.memory-focus{animation:none}}
.reader-main{position:relative}
.latest-message{position:absolute;right:24px;bottom:235px;z-index:5;border:1px solid var(--line,#464646);border-radius:24px;padding:10px 16px;background:var(--surface);color:var(--ink);box-shadow:0 6px 24px #00000055}
.latest-message[hidden]{display:none}
@media all{.latest-message{right:16px;bottom:235px}}
.story-version-tag{display:inline-block;font-size:11px;padding:4px 8px;margin:2px 0 6px;border-radius:5px;color:var(--muted);border:1px solid var(--line,#464646)}
.story-version-tag.new{color:#cbcbcb;background:#8c8c8c22;border-color:#8c8c8c55}
.legacy-story-note{display:flex;align-items:center;gap:12px;padding:10px 20px;border-bottom:1px solid var(--line,#464646);font-size:12px;line-height:1.6;color:var(--muted)}
.legacy-story-note button{flex-shrink:0;background:transparent;border:0;color:var(--ink);text-decoration:underline;text-underline-offset:4px}
@media all{.legacy-story-note{flex-direction:column;align-items:flex-start;gap:4px;padding:8px 16px}}
/* Keep zoomed imagery from creating a hidden, focus-scrollable intro viewport. */
.cinema-intro{overflow:clip}
.cinema-images{overflow:clip}
@media all{.cinema-controls{gap:8px}.cinema-controls>.quiet{white-space:nowrap;flex-shrink:0;padding:10px 6px;font-size:12px}.cinema-dots{flex:1;min-width:0;gap:6px}.cinema-dots button{flex:1;min-width:20px;width:auto;min-height:44px}.cinema-dots button:before{top:20px}.cinema-dots button{padding:20px 0}}
.search-chat{flex-wrap:wrap;gap:8px}.search-chat input{min-width:100px;flex:1}.search-chat #search-count{min-width:48px;font-size:11px;white-space:nowrap}.search-chat .iconbtn{width:32px;height:32px;flex-shrink:0}.chat-log mark.search-current{background:#bababa;color:#181818;outline:2px solid #bababa;outline-offset:2px}

:root[data-theme=light] .story-version-tag.new{color:#565656;background:#a4a4a420;border-color:#77777766}
.startup-screen{min-height:90dvh;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:32px;text-align:center;gap:22px}.startup-screen h1{font-size:clamp(24px,4vw,36px);letter-spacing:-1px;word-break:keep-all}.startup-screen p{color:var(--muted);max-width:400px}.startup-pulse{width:32px;height:3px;border-radius:3px;background:var(--accent);animation:startup-pulse 1.5s ease-in-out infinite}@keyframes startup-pulse{50%{opacity:.25;transform:scaleX(.5)}}@media(prefers-reduced-motion:reduce){.startup-pulse{animation:none}}

/* Mobile app canvas on every device; desktop adds only an outer backdrop. */
body{background:#111111}
:root[data-theme=light] body{background:#e5e5e5}
#app{width:100%;max-width:430px;min-height:100dvh;margin-inline:auto;background:var(--bg);box-shadow:0 0 0 1px var(--line),0 16px 80px #00000022}
.shell{width:100%;max-width:430px;padding-inline:18px;margin:0}
.shell.chat-shell{padding:0}
.mobile-nav{left:50%;right:auto;transform:translateX(-50%);width:100%;max-width:430px}
.header{position:relative;gap:12px}
.hero{min-height:550px}
.hero h1{font-size:38px}
.hero-copy{padding:24px 20px}
.hero-count{font-size:8px;letter-spacing:2px}
.story-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.catalog-cover{min-height:240px}
.detail-cover.catalog-cover{min-height:430px}
.reader-aside{display:none}
.reader{display:block;padding:0;min-height:0;height:calc(100dvh - 56px)}
.reader-main{height:100%;border:0;border-radius:0}
.history-open p{max-width:245px}
.continue-card p{max-width:160px}
.saved-lines{grid-template-columns:1fr}
.cinema-intro{height:calc(100svh - 140px);min-height:560px;margin:0;border-radius:0}
.cinema-copy h1{font-size:30px}
dialog{width:402px;max-width:calc(100vw - 28px)}
#toast{max-width:min(390px,90vw)}
.startup-screen{min-height:100dvh}

/* Keep the story entry available while reading a character profile. */
.detail{padding-bottom:100px}
.detail-actions{position:fixed;left:50%;transform:translateX(-50%);bottom:65px;width:min(430px,100%);margin:0;padding:12px 18px;background:var(--bg);border-top:1px solid var(--line);z-index:9;gap:8px}
.detail-actions button{min-height:44px;font-size:12px;padding:10px 12px;white-space:nowrap}
.detail-actions .primary{min-width:0}
.detail-save{min-width:44px;font-size:20px!important}
.card-copy .eyebrow{letter-spacing:.04em;line-height:1.7}
.card-copy .card-meta{display:flex;flex-direction:column;align-items:flex-start;gap:6px}

.voice-tags{display:flex;flex-wrap:wrap;gap:6px;margin:14px 0 22px}.voice-tags span{font-size:11px;color:var(--accent);border:1px solid var(--line);padding:5px 9px;border-radius:20px}
.voice-preview .voice-question{margin:0 0 12px auto;max-width:85%;background:var(--surface);border-radius:14px 14px 3px 14px;padding:12px 15px;color:var(--ink)}
.voice-preview blockquote{margin:0 0 20px;padding:15px 17px;border-left:2px solid var(--accent);font-size:15px;line-height:1.9;color:var(--ink);background:var(--surface);border-radius:0 14px 14px 0;word-break:keep-all}
.voice-preview small{display:block;font-size:10px;color:var(--muted);margin-top:12px;line-height:1.7}

.discovery-home{padding-top:24px}.discovery-intro{margin-bottom:20px}.discovery-intro h1{font-size:24px;line-height:1.5;letter-spacing:-1px;margin:8px 0;word-break:keep-all}.discovery-intro>p:last-child{font-size:12px;color:var(--muted)}
.discovery-quick{display:flex;align-items:center;justify-content:space-between;gap:10px}.discovery-quick .filter-row{margin:12px 0}.discovery-quick .text-button{font-size:12px;white-space:nowrap}
.discovery-home .catalog-cover{min-height:220px}.discovery-home .result-summary{margin-top:16px}

.discovery-home{padding-top:16px}.discovery-intro{margin-bottom:14px}.discovery-intro .eyebrow{display:none}.discovery-intro h1{font-size:22px;margin:0 0 5px}.discovery-home .search-box{margin-bottom:0}.discovery-home .result-summary small{display:none}.home-filters>summary{font-size:12px;color:var(--muted);padding:8px 0;cursor:pointer}.home-filters .discovery-controls{margin-top:8px}.discovery-home .result-summary{margin:10px 0}.discovery-home .discovery-quick .filter-row{margin:10px 0}
.discovery-home .story-grid .catalog-cover{aspect-ratio:4/5;min-height:0}.discovery-home .story-grid .card-copy{padding:11px}.discovery-home .story-grid h3{font-size:16px;margin-top:5px}

.new-story-options{display:grid;gap:10px;margin:20px 0}.new-story-option{display:flex;align-items:center;gap:13px;text-align:left;padding:10px;border:1px solid var(--line);border-radius:12px;background:var(--surface);color:var(--ink);width:100%}.new-story-option img{width:58px;height:72px;object-fit:cover;object-position:center 25%;border-radius:8px}.new-story-option span{flex:1;min-width:0}.new-story-option strong{display:block;font-size:15px}.new-story-option small{display:block;font-size:12px;margin:4px 0;line-height:1.5}.new-story-option em{display:block;font-size:10px;font-style:normal;color:var(--muted)}.new-story-option svg{width:18px;flex-shrink:0}.new-story-option:disabled{opacity:.5}.new-story-option[aria-busy=true]{border-color:var(--accent)}

.character-profile-button{border:0;background:none;color:var(--ink);padding:0;text-align:left;cursor:pointer;min-width:0}.character-profile-button:hover strong{text-decoration:underline;text-underline-offset:4px}.character-profile-button:focus-visible{outline:2px solid var(--accent);outline-offset:5px;border-radius:8px}.chat-profile>img{width:100%;height:240px;object-fit:cover;object-position:center 25%;border-radius:12px;margin-bottom:18px}.chat-profile>h3{margin:10px 0;font-size:19px}.chat-profile>p:last-child{font-size:13px;line-height:1.9;color:var(--muted)}

.scene-viewer .unlocked-media{display:block;width:100%;max-height:55vh;object-fit:contain;background:#111111;border-radius:12px}.scene-viewer-nav{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:18px 0}.scene-viewer-nav span{font-size:13px;color:var(--muted)}.scene-viewer-nav button:disabled{opacity:.3;cursor:default}

.composer-meta{display:flex;flex-direction:column;gap:3px}.composer-meta #composer-count{font-variant-numeric:tabular-nums;color:var(--muted)}.composer-meta #composer-count.near-limit{color:var(--accent)}.live-composer textarea{box-sizing:border-box;max-height:160px}.live-composer button[type=submit]:disabled{opacity:.4;cursor:default}

.work-preview{padding:12px 0}.work-preview-cover{width:100%;max-height:300px;object-fit:cover;border-radius:12px}.work-preview-placeholder{display:grid;place-items:center;height:160px;background:var(--raised);color:var(--muted);border-radius:12px;font-size:12px}.work-preview .eyebrow{margin-top:20px}.work-preview h2{font-size:24px;margin:12px 0}.work-preview-tags{display:flex;gap:6px;flex-wrap:wrap;margin:15px 0}.work-preview-tags span{font-size:11px;border:1px solid var(--line);border-radius:20px;padding:5px 9px}.work-preview-description{white-space:pre-wrap}.work-preview .story-turn{margin:20px 0}.work-preview .saved-line-head{margin-bottom:18px}

.writing-recovery{margin:24px 0;padding:18px;border:1px solid var(--line);border-radius:12px;background:var(--raised)}.writing-recovery h3{font-size:15px;margin:0 0 8px}.writing-recovery>p{color:var(--muted);font-size:11px;line-height:1.8}.writing-recovery .settings-link{font-size:12px;gap:10px}

.history-open.session-loading{opacity:.6}.history-open.session-loading small:after{content:' · 불러오는 중…';color:var(--accent)}

#memory-note-form textarea{width:100%;padding:12px;background:var(--bg);color:var(--ink);border:1px solid var(--line);border-radius:10px;resize:vertical;font:inherit;line-height:1.8}

.story-albums{display:grid;gap:12px}.story-album{display:flex;align-items:center;gap:16px;text-align:left;padding:14px;background:var(--raised);border:1px solid var(--line);border-radius:12px;width:100%}.story-album img{width:64px;height:84px;object-fit:cover;border-radius:8px}.story-album>span:nth-child(2){display:grid;gap:7px;flex:1}.story-album small,.story-album span span{font-size:11px;color:var(--muted)}.story-album strong{font-size:15px}.story-album:hover{border-color:var(--accent)}

.onboarding h2{font-size:27px;line-height:1.5;margin:12px 0}.onboarding p{line-height:1.75}.onboarding-progress{font-size:11px;color:var(--accent);letter-spacing:1px}.onboarding-faces{display:grid;grid-template-columns:repeat(4,1fr);gap:7px;margin:20px 0}.onboarding-faces img{width:100%;height:160px;object-fit:cover;border-radius:36px}.onboarding-faces img:nth-child(even){margin-top:20px}.onboarding .primary{margin-top:20px}.onboarding-controls{display:flex;justify-content:space-between;margin-top:12px}.onboarding .control{display:grid;gap:8px;margin:20px 0}.onboarding select,.onboarding input{width:100%;padding:12px;border:1px solid var(--line);border-radius:8px;background:var(--surface);color:var(--ink);font-size:16px}.onboarding .tiny{font-size:11px;color:var(--muted)}

.profile-summary{background:var(--raised);border:1px solid var(--line);border-radius:14px;padding:20px;margin-bottom:24px}.profile-summary-top{display:flex;align-items:center;gap:12px}.profile-summary-top>div{flex:1;min-width:0}.profile-summary h2{font-size:21px;overflow-wrap:anywhere}.profile-summary p{font-size:12px;color:var(--muted);line-height:1.7;margin:12px 0}.profile-summary-top p{margin:4px 0}.profile-monogram{display:grid;place-items:center;width:48px;height:48px;flex-shrink:0;border-radius:50%;background:var(--accent);color:var(--accent-ink);font-size:22px}.profile-summary .tiny{font-size:10px}.profile-summary .tags{margin:14px 0}

.active-discovery{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin:18px 0 4px}.active-discovery>span{font-size:11px;color:var(--muted)}.active-discovery button{padding:8px 12px;border:1px solid var(--accent);border-radius:20px;font-size:11px;color:var(--accent);max-width:100%;overflow-wrap:anywhere}

.history-character{display:block;font-size:10px;color:var(--muted);margin:5px 0;line-height:1.5}
dialog:has(.onboarding){width:430px;max-width:100vw;height:100dvh;max-height:100dvh;margin:0 auto;border-radius:0;border:0;padding:20px 24px max(20px,env(safe-area-inset-bottom));overflow-y:auto;overscroll-behavior:contain}dialog:has(.onboarding) .modal-head{margin-bottom:8px}dialog:has(.onboarding) .modal-head h2{font-size:13px;letter-spacing:1px}dialog:has(.onboarding) .modal-head>button{width:40px;height:40px}.onboarding-faces img{height:clamp(100px,20dvh,160px)}.onboarding-faces{margin:12px 0 24px}.onboarding h2{font-size:clamp(22px,3.6dvh,27px)}.onboarding .onboarding-controls{padding-bottom:env(safe-area-inset-bottom)}@media(max-height:700px){.onboarding p{margin:10px 0}.onboarding-faces img{height:105px}.onboarding-faces img:nth-child(even){margin-top:10px}.onboarding .primary{margin-top:12px}.onboarding .control{margin:12px 0}.onboarding h2{line-height:1.4}.onboarding-controls{margin-top:4px}}

/* Chat-first layout, larger direct-send suggestion and relationship progress. */
.chat-shell .header{height:44px!important}.chat-shell .reader{height:calc(100dvh - 44px)!important}.chat-shell .reader-main{display:flex;flex-direction:column;min-height:0;background:var(--bg)}
.chat-head{flex-shrink:0;gap:10px;padding:12px 14px!important;background:var(--surface);border-bottom:1px solid var(--line)}.chat-head .person{flex:1}.chat-head .avatar{width:42px;height:42px}.chat-head .person strong{font-size:16px}.chat-head .person p{font-size:11px}.chat-tools{gap:2px}.chat-tools .iconbtn,.chat-back{width:32px;height:36px;padding:6px;flex-shrink:0}
.relationship-strip{display:block;flex-shrink:0;text-align:left;padding:9px 17px 11px;border:0;border-bottom:1px solid var(--line);background:var(--surface);color:var(--ink);width:100%}.relationship-label{font-size:10px;color:var(--muted)}.relationship-meters{display:flex;gap:20px;margin-top:5px}.relationship-meters>span{position:relative;flex:1;padding-bottom:8px;font-size:11px}.relationship-meters strong{float:right;font-size:12px;color:var(--accent)}.relationship-meters i{position:absolute;bottom:0;left:0;right:0;height:3px;border-radius:9px;background:var(--line);overflow:hidden}.relationship-meters i:after{content:'';display:block;width:var(--score);height:100%;background:var(--accent);border-radius:9px;transition:width .6s}
.chat-log{flex:1;min-height:0;overflow:auto;padding:20px 16px 12px!important;scroll-padding-bottom:20px;background:radial-gradient(ellipse at top,rgba(120,120,120,.07),transparent 70%)}
.story-turn{margin-bottom:22px}.story-turn .dialogue{display:table;max-width:90%!important;margin:8px auto 8px 0;padding:13px 16px!important;border-radius:4px 19px 19px 19px;background:var(--raised);border:1px solid var(--line);line-height:1.8;font-size:var(--reader-size);box-shadow:0 2px 6px #00000008}
.story-turn .narration{font-size:calc(var(--reader-size) - 1px);line-height:1.95;padding:7px 3px!important;margin:8px 0 13px!important;color:var(--muted);background:transparent!important;border:0!important;font-style:normal}.message.user{display:table;max-width:88%!important;margin:16px 0 22px auto!important;border-radius:19px 4px 19px 19px!important;background:var(--accent)!important;color:var(--accent-ink)!important;padding:13px 16px!important;line-height:1.8}
.live-composer{flex-shrink:0;padding:10px 14px max(10px,env(safe-area-inset-bottom))!important;background:var(--surface);border-top:1px solid var(--line)}.reply-suggestion{margin-bottom:10px}.suggestion-heading{font-size:11px;margin-bottom:6px}.reply-suggestion>button{display:flex;flex-direction:column;align-items:flex-start;gap:7px;width:100%;font-size:15px!important;line-height:1.6;padding:13px 15px!important;min-height:64px;border:1px solid var(--accent);border-radius:13px;text-align:left;background:var(--raised)}.reply-suggestion>button small{display:block!important;font-size:10px;color:var(--accent)}.suggestion-refresh{min-height:30px;padding:4px 8px}.live-composer textarea{min-height:48px!important;border-radius:14px;padding:12px!important;background:var(--bg);line-height:1.6}.composer-meta{font-size:9px}.composer-note{font-size:9px!important;line-height:1.5}.composer-bottom .primary{border-radius:20px;min-height:42px}.connect-banner{flex-shrink:0}
.taste-section{border-bottom:1px solid var(--line);padding:12px 0}.taste-section>summary{cursor:pointer;font-size:15px;font-weight:600;list-style-position:inside}.taste-section>summary small{float:right;color:var(--muted);font-size:11px;font-weight:400}.taste-section .interest-group{border:0;padding:0;margin:14px 0 4px}.taste-section .filter-row button{min-height:40px;font-size:13px;padding:9px 13px}.onboarding .filter-row{gap:8px}.onboarding input[type=number]{font-size:20px}
@media(max-height:720px){.reply-suggestion>button{padding:9px 12px!important;min-height:52px;font-size:14px!important}.composer-note{display:none}.relationship-strip{padding-top:6px;padding-bottom:8px}.chat-head{padding-top:8px!important;padding-bottom:8px!important}.live-composer textarea{min-height:42px!important}.chat-log{padding-top:12px!important}}

.test-topup{padding:16px;background:var(--raised);border:1px solid var(--accent);border-radius:14px;margin:18px 0}.test-topup h3{margin-top:0}.test-topup p,.test-topup small{font-size:11px;line-height:1.7}.test-topup .button-row{display:flex;gap:7px}.test-topup button{flex:1;padding:12px 7px;font-size:13px;min-height:46px}.test-topup button:disabled{opacity:.5}

/* Speaker portrait aligned with each assistant response. */
.story-turn{position:relative;padding-left:44px;padding-top:25px;min-height:42px}.turn-identity{position:absolute;top:0;left:0;display:flex;align-items:center;gap:10px;padding:0;border:0;background:transparent;color:var(--muted);font-size:13px;line-height:20px;text-align:left}.turn-identity img{width:34px;height:34px;object-fit:cover;object-position:50% 30%;border-radius:50%;flex-shrink:0}.turn-identity span{align-self:flex-start;margin-top:2px}.turn-content{min-width:0}.story-turn .dialogue{max-width:100%!important}.story-turn .narration{margin-top:4px!important}.turn-identity:focus-visible{outline:2px solid var(--accent);outline-offset:4px;border-radius:20px}

/* Character social profile and photo viewer. */
dialog:has(.social-profile),dialog:has(.profile-photo-viewer){width:430px;max-width:100vw;max-height:94dvh;padding:0;overflow-y:auto;border-radius:22px;background:var(--bg)}
dialog:has(.social-profile) .modal-head,dialog:has(.profile-photo-viewer) .modal-head{position:sticky;top:0;z-index:3;background:var(--bg);padding:14px 18px;margin:0;border-bottom:1px solid var(--line)}
.social-cover{position:relative;height:190px;overflow:hidden}.social-cover>img{width:100%;height:100%;object-fit:cover;object-position:center 40%}.social-cover:after{content:'';position:absolute;inset:0;background:linear-gradient(transparent,#00000099)}.social-cover>span{position:absolute;right:18px;bottom:16px;z-index:1;font-size:12px;color:#ffffff;letter-spacing:.5px}.social-details{position:relative;padding:0 22px}.social-avatar{position:relative;display:block;margin-top:-42px;z-index:2;padding:0;width:86px;height:86px;border:4px solid var(--bg);border-radius:50%;overflow:hidden;background:var(--surface)}.social-avatar img{width:100%;height:100%;object-fit:cover;object-position:50% 30%}.social-job{font-size:11px;color:var(--muted);margin:13px 0 4px}.social-details h2{font-size:25px;margin:0 0 14px}.social-status{padding:12px 14px;background:var(--raised);border-radius:3px 14px 14px 14px;font-size:14px;line-height:1.7;margin:0 0 12px}.social-bio{font-size:13px;color:var(--muted);line-height:1.8}.social-tags{display:flex;flex-wrap:wrap;gap:8px;font-size:12px;color:var(--accent);margin:14px 0 18px}.social-details>.primary{display:flex;justify-content:center;align-items:center;gap:8px;min-height:44px}.social-details>.primary svg{width:17px;height:17px}.social-about{margin:18px 0;font-size:13px}.social-about summary{cursor:pointer;color:var(--muted)}.social-about p{line-height:1.8}.social-photo-title{display:flex;align-items:center;gap:8px;padding-top:14px;border-top:1px solid var(--line);margin-top:18px}.social-photo-title h3{font-size:15px;margin:0 0 14px}.social-photo-title span{font-size:12px;color:var(--muted);margin-bottom:14px}.social-photo-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:3px}.social-photo-grid button{padding:0;border:0;aspect-ratio:1;overflow:hidden}.social-photo-grid img{display:block;width:100%;height:100%;object-fit:cover;transition:transform .2s}.social-photo-grid button:hover img{transform:scale(1.05)}.social-footnote{font-size:10px;color:var(--muted);text-align:center;padding:16px;margin:0}.profile-photo-viewer{padding:12px 16px 20px}.profile-photo-viewer>img{display:block;width:100%;max-height:62dvh;object-fit:contain;background:#090909;border-radius:12px}.profile-photo-viewer>p{font-size:14px;line-height:1.7;margin:16px 0;text-align:center}.profile-photo-controls{display:flex;justify-content:space-between;align-items:center;margin:12px 0}.profile-photo-controls>span{font-size:12px;color:var(--muted)}.profile-photo-controls>button{min-width:48px;min-height:44px}@media(max-width:480px){dialog:has(.social-profile),dialog:has(.profile-photo-viewer){width:100%;max-height:100dvh;height:100dvh;margin:0;border-radius:0}.social-cover{height:210px}}

.relation-event{border-bottom:1px solid var(--line);padding:12px 0}.relation-event small{display:block;color:var(--muted);margin-top:6px}.relation-event p{font-size:13px;line-height:1.7}

.conversation-actions{display:flex;flex-direction:column;gap:4px;align-items:center}.conversation-actions .quiet{min-height:40px;padding:8px}.danger-text{color:#9b9b9b}.history-open:disabled{opacity:.65;cursor:default}
.cast-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin:18px 0}.cast-grid button{padding:0;overflow:hidden;text-align:left;background:var(--panel,#252525);border-radius:15px;border:1px solid #ffffff18}.cast-grid img{width:100%;aspect-ratio:3/4;object-fit:cover}.cast-grid strong,.cast-grid small{display:block;padding:5px 10px}.cast-grid small{font-size:11px;color:#b4b4b4}.cast-profile-photo{width:100%;max-height:320px;object-fit:cover;object-position:50% 25%;border-radius:18px}.cast-profile h3{margin-top:24px}.cast-profile p{line-height:1.8}.cast-turn{margin-bottom:18px}.cast-turn .turn-identity{margin-left:0}.world-panel{min-height:150px;background-size:cover;background-position:center;display:flex;flex-direction:column;justify-content:flex-end;padding:15px 20px;gap:8px;color:white;animation:world-fade .65s ease}.world-panel>span{font-size:14px;letter-spacing:.06em}.world-panel>div{display:flex;gap:8px}.world-panel button{color:white;background:#1f1f1faa;border:1px solid #ffffff22;border-radius:20px;padding:4px 10px;font-size:12px;display:flex;align-items:center;gap:5px;width:fit-content}.world-panel img{width:24px;height:24px;border-radius:50%;object-fit:cover}.world-scene-grid{display:grid;gap:16px}.world-scene-grid figure{margin:0}.world-scene-grid img{width:100%;border-radius:12px}.world-scene-grid figcaption{padding:8px}.incoming-row{width:100%;display:flex;gap:12px;text-align:left;padding:16px 10px;border:0;border-bottom:1px solid #88888833;background:transparent;color:inherit}.incoming-row>img{width:48px;height:48px;border-radius:50%;object-fit:cover}.incoming-row>span{display:grid;gap:5px}.incoming-row small{opacity:.65;font-size:11px}.unread-dot{color:#bcbcbc}.received-in-chat{padding:12px 20px;background:#bcbcbc15;border-bottom:1px solid #bcbcbc30}.received-in-chat small{color:#aeaeae}.received-in-chat p{font-size:14px;margin:8px 0}.header-right{display:flex;align-items:center;gap:10px}.header-right .iconbtn small{color:#bcbcbc}details label:has([data-incoming-pref]){display:block;margin:15px 0}@keyframes world-fade{from{opacity:.5}to{opacity:1}}@media(prefers-reduced-motion:reduce){.world-panel{animation:none}}
.world-panel{min-height:70px;max-height:82px;flex-shrink:0;position:relative;padding:9px 16px;gap:5px}.world-panel>span{font-size:12px}.world-panel>.quiet{position:absolute;right:12px;bottom:14px}.received-in-chat{margin-bottom:20px;border-radius:12px}.cast-turn .turn-identity{position:static!important;display:flex!important;width:auto!important;height:auto!important;gap:8px!important;align-items:center;margin:0 0 12px!important}.cast-turn .turn-identity img{width:32px!important;height:32px!important;object-fit:cover;border-radius:50%}.cast-turn .turn-identity span{position:static!important;font-size:12px;color:var(--muted)}.story-turn:has(.cast-turn){padding-left:0!important}.story-turn:has(.cast-turn)>.turn-content{margin-left:0!important}.cast-turn .message{margin-left:40px!important}

/* Story entry: readable prologue and per-story persona. */
.cinema-copy{bottom:155px}.cinema-bottom{bottom:24px}.entry-scroll{color:#c7c7c7;text-align:center;font-size:12px;text-decoration:none;padding:8px}.story-entry{padding-top:14px}.entry-cover{position:relative;height:560px;margin-top:16px;overflow:hidden;border-radius:16px}.entry-cover>img{width:100%;height:100%;object-fit:cover;object-position:center 25%}.entry-cover>div{position:absolute;inset:35% 0 0;padding:80px 24px 26px;display:flex;flex-direction:column;justify-content:flex-end;background:linear-gradient(transparent,#131313f5);color:#ffffff}.entry-cover h1{font-size:32px;line-height:1.45;margin:10px 0}.entry-cover p{line-height:1.8;font-size:14px}.story-overview{padding:0 4px 24px}.entry-section{padding:30px 4px;border-bottom:1px solid var(--line);scroll-margin-top:20px}.entry-section h2{font-size:23px;line-height:1.5;margin:8px 0 16px}.entry-section h3{font-size:15px;margin:18px 0 10px}.entry-section p{font-size:14px;line-height:1.9;color:var(--muted)}.entry-section blockquote{border-left:2px solid var(--accent);padding:10px 18px;margin:20px 0;font-size:20px;line-height:1.8;color:var(--ink)}.entry-tags{display:flex;flex-wrap:wrap;gap:8px;margin-top:18px}.entry-tags span{border:1px solid var(--line);border-radius:20px;padding:6px 10px;font-size:11px;color:var(--muted)}.entry-person{display:flex;gap:18px;align-items:center}.entry-person>img{width:86px;height:110px;object-fit:cover;object-position:center 20%;border-radius:12px}.entry-person h2{margin:0}.entry-prologue{padding:20px 16px;border-radius:16px;background:var(--surface);margin:18px 0}.entry-prologue .message{max-width:100%;margin:12px 0;line-height:1.95;font-size:15px}.entry-prologue .narration{color:var(--muted)}.entry-prologue .dialogue{color:var(--ink)}.entry-persona-card{border:1px solid var(--line);border-radius:14px;padding:20px;margin:18px 0;background:var(--surface)}.entry-persona-options{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:16px 0}.entry-persona-options [aria-pressed=true]{border-color:var(--accent);color:var(--accent);box-shadow:inset 0 0 0 1px var(--accent)}#entry-persona-form textarea{width:100%;padding:14px;border:1px solid var(--line);border-radius:10px;background:var(--bg);color:var(--ink);font:inherit;resize:vertical}.entry-start{padding-top:12px}.entry-section .tiny{font-size:12px}

.entry-jumps{display:flex;justify-content:space-around;border-bottom:1px solid var(--line);padding:18px 0}.entry-jumps a{color:var(--ink);font-size:13px;text-decoration:none;padding:8px}.entry-start{display:grid;gap:12px}

.story-progress{display:grid!important;gap:5px;width:170px;max-width:100%;text-align:left}.story-progress-label{display:flex;justify-content:space-between;gap:8px;font-size:10px;color:var(--muted)}.story-progress-label b{font-weight:500;color:var(--accent)}.story-progress-track{height:4px;border-radius:4px;background:var(--line);overflow:hidden;display:block}.story-progress-track i{display:block;height:100%;background:var(--accent);border-radius:4px;transition:width .4s ease}.story-progress-scene{font-size:10px;color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}#composer-limit-note:not(.sr-only){color:var(--accent);font-size:10px}

/* Phone-first discovery: legible copy, compact cards and a one-screen welcome. */
.shell:not(.chat-shell){padding-inline:16px}
.shell:not(.chat-shell) .header{height:60px;gap:8px}
.header-right .iconbtn{width:40px;height:40px;font-size:20px}
.header-right .iconbtn small{font-size:11px}
.discovery-home{padding-top:12px}
.discovery-intro{margin-bottom:10px}
.discovery-intro h1{font-size:21px;line-height:1.35;letter-spacing:-.6px}
.discovery-intro>p:last-child{font-size:14px;line-height:1.5;color:var(--ink);opacity:.75}
.discovery-quick .filter-row button{min-height:40px;font-size:14px;padding:8px 16px}
.discovery-home .result-summary{margin:8px 0 12px;font-size:14px}
.discovery-home .story-grid{gap:14px 10px;align-items:start}
.discovery-home .story-grid .catalog-cover{aspect-ratio:1/1;min-height:0}
.discovery-home .story-grid .card-copy{padding:10px}
.discovery-home .story-grid .card-copy .eyebrow{font-size:12px;line-height:1.5;letter-spacing:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.discovery-home .story-grid h3{font-size:17px;line-height:1.4;margin:5px 0 6px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;min-height:0}
.discovery-home .story-grid .card-copy p{font-size:15px;line-height:1.5;min-height:0;height:3em;margin:0;color:var(--ink);opacity:.8;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.discovery-home .card-meta{margin-top:10px;font-size:12px;line-height:1.4}
.discovery-home .card-meta>span:first-child,.discovery-home .match-reason{display:none}
.mobile-nav button{font-size:11px;min-height:44px}
.mobile-nav svg{width:23px;height:23px}
dialog:has(.onboarding){padding:16px 20px max(12px,env(safe-area-inset-bottom));box-sizing:border-box}
.onboarding-progress{font-size:12px;letter-spacing:.3px}
.onboarding p{font-size:15px;line-height:1.6}
.onboarding .tiny{font-size:12px;line-height:1.5}
.onboarding .control{font-size:15px;margin:14px 0;gap:6px}
.onboarding input,.onboarding select{font-size:16px;min-height:48px}
.onboarding .primary{min-height:48px;font-size:16px}
.onboarding-controls .quiet{font-size:14px;min-height:44px}
dialog[open]:has(.onboarding-step-0){display:flex;flex-direction:column;overflow-y:auto}
dialog:has(.onboarding-step-0) .modal-head{flex:none;margin-bottom:4px}
.onboarding-step-0{display:flex;flex-direction:column;flex:1;min-height:0}
.onboarding-step-0 .onboarding-progress{margin:4px 0 8px;flex:none}
.onboarding-step-0 #onboarding-form{display:flex;flex-direction:column;flex:1;min-height:0}
.onboarding-step-0 .onboarding-faces{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin:8px 0 20px;flex:1;min-height:80px;max-height:260px}
.onboarding-step-0 .onboarding-faces img{height:100%;min-height:0;width:100%;margin:0;border-radius:64px;object-fit:cover;object-position:50% 25%}
.onboarding-step-0 .eyebrow{display:none}
.onboarding-step-0 h2{font-size:25px;line-height:1.45;margin:0 0 10px;flex:none}
.onboarding-step-0 p{margin:0 0 12px;flex:none}
.onboarding-step-0 .primary{margin:8px 0 10px;flex:none}
.onboarding-step-0 .tiny{margin:0}
.onboarding-step-0 #onboarding-error:empty{display:none}
.onboarding-step-0 .onboarding-controls{margin:4px 0 0;flex:none;justify-content:center}
@media(max-height:650px){.onboarding-step-0 .onboarding-faces{max-height:150px;margin-bottom:12px}.onboarding-step-0 h2{font-size:22px}.onboarding-step-0 p{margin-bottom:8px}.onboarding-step-0 .tiny{font-size:11px}}

/* Continuous portrait rail: two identical groups make a seamless loop. */
.welcome-carousel{position:relative;overflow:hidden;flex:none;height:clamp(145px,30dvh,240px);margin:8px -20px 20px;isolation:isolate}
.welcome-track{display:flex;width:max-content;height:100%;animation:welcome-drift 55s linear infinite;will-change:transform}
.welcome-group{display:flex;flex:none;gap:10px;padding-right:10px;height:100%}
.welcome-group img{display:block;width:120px;height:calc(100% - 16px);object-fit:cover;object-position:50% 25%;border-radius:64px;flex:none}
.welcome-group img:nth-child(even){margin-top:16px}
.welcome-motion{position:absolute;right:12px;bottom:0;width:44px;height:44px;border:1px solid #ffffff44;border-radius:50%;background:#131313c9;color:#ffffff;font-size:18px;display:grid;place-items:center}
.welcome-carousel.is-paused .welcome-track{animation-play-state:paused}
@keyframes welcome-drift{to{transform:translateX(-50%)}}
.onboarding-step-0,.onboarding-step-0 #onboarding-form{flex:0 0 auto}
.onboarding-step-0 .onboarding-controls{margin-top:8px}
dialog[open]:has(.onboarding-step-0){height:auto;max-height:100dvh;margin-block:auto;padding-bottom:max(16px,env(safe-area-inset-bottom))}
@media(min-width:600px){dialog[open]:has(.onboarding-step-0){max-height:min(820px,100dvh);border-radius:20px}}
@media(max-height:650px){.welcome-carousel{height:130px;margin-bottom:12px}.welcome-group img{width:96px}}
@media(prefers-reduced-motion:reduce){.welcome-track{animation:none;transform:none}.welcome-carousel{overflow-x:auto}.welcome-group[aria-hidden]{display:none}.welcome-motion{display:none}}

/* Readable story summaries and genre/relationship labels. */
.discovery-home .story-grid .card-copy p{display:block;height:auto;min-height:0;overflow:visible;-webkit-line-clamp:unset;font-size:15px;line-height:1.55}
.discovery-home .story-grid h3{display:block;overflow:visible;-webkit-line-clamp:unset}
.discovery-home .story-grid .card-copy .eyebrow{white-space:normal;overflow:visible}
.story-hashtags{display:flex;flex-wrap:wrap;gap:5px 7px;margin-top:12px;color:var(--accent);font-size:13px;line-height:1.5;text-align:left}
.story-hashtags span{display:inline-block}

.entry-section .encounter-setup,.entry-section .encounter-hook{font-size:16px;line-height:1.8;color:var(--ink)}
.entry-section .encounter-place{font-size:12px;letter-spacing:.03em;color:var(--accent)}
.entry-section .encounter-hook{padding:14px 16px;background:var(--surface);border-radius:12px}

.serial-preview details{margin-top:20px}.serial-preview summary{cursor:pointer;padding:12px 0}.serial-preview ol{padding-left:24px}.serial-preview li{padding:12px 0 12px 8px;border-bottom:1px solid #ffffff15}.serial-preview li p{margin:8px 0;font-size:15px}

.community-stats{display:flex;flex-wrap:wrap;gap:12px;color:var(--muted);font-size:13px;margin:14px 0 4px}.community-actions{display:flex;gap:10px;margin:18px 0}.community-comments{margin-top:24px}.community-comment{padding:20px 0;border-top:1px solid var(--line)}.community-comment header{display:flex;justify-content:space-between;gap:12px}.comment-body{white-space:pre-wrap;overflow-wrap:anywhere;line-height:1.7}.spoiler-check{display:flex;align-items:center;gap:10px;margin:14px 0}#story-comment-form textarea{width:100%;box-sizing:border-box;background:var(--bg);color:var(--ink);border:1px solid var(--line);padding:12px;border-radius:10px;font:inherit}#comment-error{color:#b8b8b8}.ending-strip{padding:10px 16px;display:flex;align-items:center;gap:10px;flex-wrap:wrap;background:#bbbbbb10;border-bottom:1px solid var(--line);font-size:13px}.ending-strip button{padding:7px 12px;font-size:13px}.ending-strip small{color:var(--muted)}.ending-card{border:1px solid #bbbbbb66;border-radius:18px;padding:24px;background:linear-gradient(150deg,#343434,#1b1b1b);margin-bottom:18px}.ending-card img{width:90px;height:110px;object-fit:cover;border-radius:45px;margin:16px 0}.ending-card h2{font-size:28px;margin:16px 0 28px}.ending-card h3{font-size:15px;color:#bbbbbb;margin-top:20px}.ending-card p{line-height:1.8;white-space:pre-wrap}.ending-history{display:block;color:#bbbbbb;font-size:12px;margin-top:6px}[hidden]{display:none!important}

.account-login{max-width:430px;margin:8vh auto;padding:28px}.account-login h1{font-size:28px;line-height:1.4}.account-login p{line-height:1.7}.account-login input{width:100%;box-sizing:border-box}.account-panel{display:flex;flex-wrap:wrap;gap:12px;align-items:center;padding:18px;border:1px solid var(--line);border-radius:12px;margin-bottom:24px}.account-panel span{font-size:13px;color:var(--muted)}#login-error{color:#b8b8b8}

.community-comment .comment-body{font-size:16px;line-height:1.75}.community-comment header strong{font-size:15px}#story-comment-form textarea,#story-comment-form input,.account-login input{font-size:16px}#story-comment-form .control{font-size:14px}.community-comments{margin-top:16px}

/* Keep the conversation, rather than persistent controls, in the foreground. */
.chat-person-copy{min-width:0;text-align:left}.chat-person-name{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.relationship-inline{display:inline-flex;gap:7px;color:var(--accent);font-size:11px;font-weight:400;white-space:nowrap}.reply-suggestion summary{cursor:pointer;font-size:12px;color:var(--muted);padding:6px 0}.reply-suggestion[open] summary{margin-bottom:6px}
@media(max-width:700px){
.chat-shell .header{display:none}.chat-shell .reader{height:100dvh;height:100svh;height:100dvh}.chat-head{padding:9px 12px;gap:6px}.chat-head .person{flex:1;min-width:0;gap:8px}.chat-person-copy p{max-width:180px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.chat-tools{gap:0}.chat-tools .iconbtn{width:30px;height:36px}.chat-head .avatar{width:32px;height:32px;flex-shrink:0}.chat-log{padding:16px 16px 8px}.live-composer{padding:6px 12px max(8px,env(safe-area-inset-bottom))}.live-composer textarea{min-height:44px;padding:8px 12px;font-size:16px;line-height:1.5}.reply-suggestion{margin-bottom:4px}.reply-suggestion>button{font-size:14px}.reply-suggestion small{display:none}.composer-note,.composer-meta>span:last-child,.story-progress-scene{display:none}.composer-bottom{margin-top:5px}.story-progress{gap:3px;min-width:100px}.story-progress-label{font-size:10px}.composer-bottom button{min-height:36px}.world-panel{min-height:0!important;height:auto!important;padding:6px 12px!important}.world-panel img{width:24px;height:24px}.ending-strip{padding:6px 12px;font-size:12px}
}

.composer-input-row{position:relative;display:flex;align-items:flex-end;border:1px solid var(--line);border-radius:22px;background:var(--bg);padding:3px}.live-composer .composer-input-row textarea{border:0;background:transparent;border-radius:20px;min-height:44px;padding:9px 52px 9px 12px;line-height:1.5}.composer-input-row .composer-send{position:absolute;right:5px;bottom:5px;width:36px;height:36px;min-height:36px;padding:0;border-radius:50%;font-size:22px;display:grid;place-items:center}.composer-send:disabled{opacity:.4}.live-composer #composer-limit-note:not(.sr-only){display:block;padding:4px 8px}.reply-suggestion>button{font-size:14px;line-height:1.6}.reply-suggestion .suggestion-heading{margin-top:4px}

.story-turn{padding-left:0!important;padding-top:0!important}.spoken-line{display:flex;align-items:flex-start;gap:9px;margin:14px 0 20px}.speaker-avatar{width:30px;height:30px;border-radius:50%;object-fit:cover;flex:0 0 30px;object-position:center 25%}.speaker-placeholder{display:grid;place-items:center;background:var(--raised);color:var(--muted);font-size:13px}.spoken-content{min-width:0;max-width:calc(100% - 39px)}.speaker-name{display:block;color:var(--muted);font-size:12px;margin:0 0 5px}.spoken-line .message.dialogue{margin:0!important}.relationship-inline{flex-wrap:wrap;gap:3px 7px}.chat-person-name{gap:3px 8px}.chat-person-copy{flex:1}.story-turn .turn-content{margin-left:0!important}

.live-composer .composer-input-row textarea{padding-right:96px}.composer-action{position:absolute;right:45px;bottom:3px;width:44px;height:40px;display:grid;place-items:center;border:0;background:transparent;color:var(--muted);font:28px/1 Georgia,serif;border-radius:50%;cursor:pointer}.composer-action:hover,.composer-action:focus-visible{color:var(--accent);background:var(--raised)}.message.user .user-action{font-style:italic;opacity:.8}
/* Account-backed story studio */
.creator-tabs{display:flex;gap:6px;overflow-x:auto;padding:6px 0 14px;position:sticky;top:0;background:var(--panel,#222222);z-index:2}.creator-tabs button{flex-shrink:0;border:1px solid var(--line);border-radius:24px;padding:10px 14px;background:transparent;color:var(--ink)}.creator-tabs .active{background:var(--gold,#bababa);color:#202020}.creator-panel[hidden]{display:none}.creator-form textarea{width:100%;box-sizing:border-box;background:var(--bg);color:var(--ink);padding:12px;border:1px solid var(--line);border-radius:10px;resize:vertical;font:inherit;font-size:16px;line-height:1.6}.creator-section{border:1px solid var(--line);border-radius:12px;padding:16px;margin:12px 0}.creator-section summary{cursor:pointer;font-weight:600}.creator-section[open] summary{margin-bottom:18px}.creator-footer{display:flex;justify-content:space-between;gap:12px;position:sticky;bottom:0;padding:12px 0;background:var(--panel,#222222)}.creator-guide{display:flex;flex-wrap:wrap;gap:14px;margin:28px 0;color:var(--muted)}.creator-cover{height:160px;max-width:100%;object-fit:cover;border-radius:12px}.creator-publish>*{margin-bottom:18px}.simple-tastes{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin:24px 0}.simple-tastes button{padding:15px}.creator-form #work-status{padding:12px 0;line-height:1.6}.creator-form .control{margin-bottom:20px}
#modal:has(.creator-form){width:min(760px,calc(100vw - 24px));max-width:760px;padding:24px;box-sizing:border-box;max-height:92dvh}.creator-tabs{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));overflow:visible;gap:8px}.creator-tabs button{padding:10px 6px;font-size:14px;white-space:nowrap}.creator-panel>h3{margin:18px 0}.creator-form .control input,.creator-form .control select{font-size:16px}.creator-footer{z-index:3;border-top:1px solid var(--line);margin-top:16px}.creator-publish .primary{margin-top:12px}
@media(max-width:600px){#modal:has(.creator-form){padding:18px;max-height:94dvh}.creator-tabs button{font-size:13px}}
.creator-footer{position:static}.creator-publish>*{margin-bottom:12px}.creator-publish p{line-height:1.6}
.suggestion-choices{display:grid;gap:6px;max-height:min(30dvh,220px);overflow-y:auto;padding:6px 0}.reply-suggestion .suggestion-choices button{display:flex;align-items:flex-start;gap:10px;padding:10px 12px;margin:0;text-align:left;font-size:15px;line-height:1.5;width:100%;min-height:44px}.choice-number{flex-shrink:0;color:var(--gold,#bababa);font-size:12px;padding-top:2px}.reply-suggestion>.tiny{margin:5px 0;font-size:12px}
.genre-filter{display:flex;align-items:center;gap:12px;margin:12px 0 16px;color:var(--muted);font-size:14px}.genre-filter select{background:var(--panel,#222222);color:var(--ink);border:1px solid var(--line);border-radius:20px;padding:9px 14px;font:inherit}.genre-label{display:block;color:var(--gold,#bababa);font-size:13px;font-weight:600;margin-bottom:8px}

/* Full portrait jackets: preserve title lettering; avatars continue using image. */
.discovery-home .story-grid .catalog-cover{aspect-ratio:2/3;min-height:0;padding:0}
.discovery-home .story-grid .catalog-cover.has-work-cover img{object-fit:contain;object-position:center;transform:none}
.discovery-home .story-grid .story-card:hover .has-work-cover img{transform:none}
.discovery-home .story-grid .card-copy .genre-label{font-size:11px;margin-bottom:4px}
.discovery-home .story-grid .card-copy .eyebrow{font-size:11px}
.discovery-home .story-grid .card-copy p{font-size:13px}
.discovery-home .story-grid .story-hashtags{max-height:1.6em;overflow:hidden}
/* Cast identities stay visible; biographies open on demand. */
.supporting-cast-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:18px 0}
.supporting-cast-card{display:flex;flex-direction:column;padding:0;text-align:left;overflow:hidden;border:1px solid var(--line);border-radius:14px;background:var(--surface);color:var(--ink);cursor:pointer}
.supporting-cast-card img{width:100%;aspect-ratio:1;object-fit:cover;display:block}
.supporting-cast-card>span{display:grid;gap:6px;padding:12px}
.supporting-cast-card strong{font-size:15px}.supporting-cast-card small{font-size:12px;line-height:1.5;color:var(--muted)}.supporting-cast-card em{font-size:11px;font-style:normal;color:var(--accent)}
.supporting-profile .cast-profile-photo{display:block;width:min(100%,190px);max-height:none;aspect-ratio:1;object-fit:cover;margin:0 auto 20px}
.speaker-profile-button{border:0;background:none;padding:0;width:30px;height:30px;flex:0 0 30px;cursor:pointer}.speaker-profile-button img{display:block}
.speaker-profile-name{border:0;background:none;padding:0;text-align:left;cursor:pointer;font:inherit;font-size:12px;color:var(--muted)}
.supporting-cast-card:focus-visible,.speaker-profile-button:focus-visible,.speaker-profile-name:focus-visible{outline:2px solid var(--accent);outline-offset:3px}
.character-introduction p{margin:0 0 18px;line-height:1.95}.character-introduction h3{line-height:1.55;margin:22px 0 20px}

/* Character facts precede the story trailer. */
.character-facts{margin:20px 0 28px}.character-height{font-size:14px;color:var(--muted,#a8a8a8)}.character-height strong{margin-left:8px;color:var(--accent,#bbbbbb);font-weight:500}.character-about{line-height:1.85;margin:14px 0 22px}.character-facts dl{margin:0;display:grid;gap:16px}.character-facts dl>div{padding:0 0 16px;border-bottom:1px solid #ffffff12}.character-facts dt{font-size:13px;font-weight:600;color:var(--accent,#bbbbbb);margin-bottom:5px}.character-facts dd{margin:0;line-height:1.75;font-size:15px;overflow-wrap:anywhere}.character-story-label{font-size:12px;letter-spacing:.04em;color:var(--muted,#a8a8a8);margin-bottom:8px!important}.character-introduction .character-story-label+h3{margin-top:8px}

.character-profile-toggle{margin:16px 0 24px}.character-profile-toggle>summary{display:flex;align-items:center;justify-content:space-between;min-height:44px;padding:8px 14px;border:1px solid #bbbbbb55;border-radius:10px;color:#bbbbbb;cursor:pointer;list-style:none;font-size:14px}.character-profile-toggle>summary::-webkit-details-marker{display:none}.character-profile-toggle>summary::after{content:"⌄"}.character-profile-toggle[open]>summary::after{content:"⌃"}.character-profile-toggle>summary:focus-visible{outline:2px solid #bbbbbb;outline-offset:3px}.character-profile-toggle .profile-hide{display:none}.character-profile-toggle[open] .profile-show{display:none}.character-profile-toggle[open] .profile-hide{display:inline}.character-profile-toggle .character-facts{margin:18px 0 0}

/* Make the player role the focal point of the start dialog. */
dialog .story-role-title{font-size:clamp(28px,7vw,36px);font-weight:750;line-height:1.3;letter-spacing:-.035em;color:#c9c9c9;margin:24px 0 18px;word-break:keep-all;overflow-wrap:anywhere}dialog .role-before-start{font-size:18px;line-height:1.8;color:#eaeaea;margin:0 0 24px;word-break:keep-all;overflow-wrap:anywhere}dialog:has(.story-role-title){max-height:calc(100dvh - 32px);overflow-y:auto}dialog:has(.story-role-title) .tiny{font-size:14px;line-height:1.6}

.generation-options{display:grid;grid-template-columns:1fr 1fr;gap:12px}.generated-work>h3{font-size:27px;margin:12px 0}.generated-character{padding:16px;border:1px solid var(--line,#444444);border-radius:14px;margin:18px 0}.generated-work details{padding:14px 0;border-bottom:1px solid #ffffff18}.generated-work summary{cursor:pointer;font-weight:700}.generated-intro{white-space:pre-wrap;line-height:1.85}.generated-actions,.creator-ai-tools{display:flex;flex-wrap:wrap;gap:10px;margin-top:20px}#generation-status{line-height:1.7;margin:12px 0} @media(max-width:480px){.generation-options{grid-template-columns:1fr}.generated-actions>button{width:100%}}
.creator-art{margin:24px 0;padding:18px;border:1px solid var(--line,#404040);border-radius:16px}.creator-art-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.creator-art-grid article{display:flex;flex-direction:column;gap:7px;min-width:0}.creator-art-grid img{width:100%;aspect-ratio:1;object-fit:cover;border-radius:12px}.creator-art-grid .art-cover img{aspect-ratio:2/3}.art-empty{aspect-ratio:1;display:grid;place-items:center;background:#ffffff06;border:1px dashed #77777766;border-radius:12px;font-size:13px;color:var(--muted,#aaaaaa)}.creator-art-grid strong{font-size:15px}.image-auto{display:flex;align-items:center;gap:9px;margin:15px 0}.image-auto input{width:18px;height:18px}.creator-art [role=status]{font-size:14px;line-height:1.6}.creator-art button:disabled{opacity:.5;cursor:default}

.chat-scene-strip{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:7px 16px;background:#1f1f1f;border-bottom:1px solid #ffffff0c;flex-shrink:0;color:#c8c8c8;font-size:12px}
.chat-scene-strip button{border:0;background:transparent;color:#a6a6a6;font:inherit;padding:4px 0;cursor:pointer}
.chat-log.has-scene-background .message.narration{color:#e0e0e0;text-shadow:0 1px 4px #000000}
.chat-log.has-scene-background .dialogue-bubble{background:rgba(38,38,38,.94)}
.chat-log[data-scene-tone="danger"]{box-shadow:inset 0 3px 14px #6f6f6f20}
.chat-log[data-scene-tone="rest"]{box-shadow:inset 0 3px 14px #bcbcbc14}

.generated-cover-title{position:absolute;inset:auto 0 0;padding:38px 14px 18px;background:linear-gradient(transparent,#131313f2);color:#ffffff;font-size:clamp(20px,3.8vw,28px);line-height:1.22;text-align:left;text-shadow:0 2px 4px #000000;word-break:keep-all}.catalog-cover{position:relative}
.start-role-options { display:grid; gap:12px; margin:20px 0; }
.start-role-card { display:flex; align-items:flex-start; gap:12px; padding:18px; border:1px solid #717171; border-radius:14px; cursor:pointer; }
.start-role-card:has(input:checked) { border-color:#bababa; background:#bababa18; }
.start-role-card input { flex-shrink:0; width:20px; height:20px; margin-top:4px; accent-color:#bababa; }
.start-role-card strong { display:block; font-size:23px; line-height:1.4; }
.start-role-card small { display:block; margin:4px 0 10px; color:var(--muted,#aaaaaa); }
.start-role-card span span { display:block; font-size:16px; line-height:1.65; }
.worldbook-shelf { margin:28px 0; }.worldbook-shelf button { text-align:left; margin:10px 0; padding:16px; }.worldbook-shelf button strong,.worldbook-shelf button span {display:block;}.worldbook-shelf button span {font-size:14px; line-height:1.6; margin-top:8px;}
.ensemble-details {margin:20px 0;line-height:1.8}.ensemble-details summary {cursor:pointer;font-size:18px}.ensemble-details section {padding:12px 0;border-bottom:1px solid #77777744}.ensemble-details small {font-size:14px;font-weight:normal}
.worldbook-shelf button {display:block;width:100%;word-break:keep-all;white-space:normal}.worldbook-shelf button strong {font-size:18px}.worldbook-shelf button span {font-weight:normal;color:var(--muted,#b3b3b3)}
.start-role-card {display:grid;grid-template-columns:22px 76px minmax(0,1fr);gap:12px;align-items:center}
.start-role-portrait {width:76px;height:88px;object-fit:cover;object-position:center 30%;border-radius:12px;background:#333333}
.start-role-card .start-role-heading {min-width:0}.start-role-card .start-role-heading strong {font-size:22px;word-break:keep-all}
.start-role-card .start-role-description {grid-column:2 / -1;display:block;font-size:16px;line-height:1.65}
.start-role-card input {margin-top:0}.start-role-card small {margin-bottom:0}
@media(max-width:420px){.start-role-card{grid-template-columns:20px 68px minmax(0,1fr);gap:10px;padding:14px}.start-role-portrait{width:68px;height:80px}.start-role-card .start-role-heading strong{font-size:20px}.start-role-card .start-role-description{grid-column:1 / -1}}

/* Nanga identity: portal mark, gold on midnight blue. */
.header .brand{display:flex;align-items:center;gap:9px;letter-spacing:0;background:none}.nanga-brand-symbol{width:34px;height:34px;flex:none}.nanga-wordmark{font-family:"Malgun Gothic",sans-serif;font-size:27px;font-weight:800;letter-spacing:-1px}.discovery-intro h1{font-size:clamp(24px,4.8vw,34px);line-height:1.45;word-break:keep-all}.header{background-color:#1d1d1d}.footer{border-top-color:#3f3f3f}

/* Approved B mark: icon only in application header. */
.nanga-app-mark{display:block;width:40px;height:40px;object-fit:contain;border-radius:11px}.header .brand{padding:0;min-width:44px;min-height:44px;justify-content:center}.header{background-color:#191919}

/* NANGA monochrome interface. Artwork retains original colors. */
:root{--bg:#101010;--surface:#181818;--raised:#242424;--ink:#f5f5f5;--muted:#aaa;--line:#ffffff20;--accent:#fff;--accent-ink:#101010;--bubble:#252525;--user:#f0f0f0;--danger:#eee}
:root[data-theme=light]{--bg:#fff;--surface:#f7f7f7;--raised:#ededed;--ink:#151515;--muted:#626262;--line:#00000025;--accent:#111;--accent-ink:#fff;--bubble:#eee;--user:#222;--danger:#222}
.header{background:var(--bg)}.mobile-nav{background:var(--surface)}.footer{border-top-color:var(--line)}
.nanga-app-mark{border:1px solid #ffffff30}.primary{background:var(--accent);color:var(--accent-ink)}
input[type=radio],input[type=checkbox]{accent-color:var(--accent)}
:root[data-theme=light] .message.user{color:#fff}

.header-right .inbox-button{display:inline-flex;flex-direction:row;align-items:center;justify-content:center;gap:4px;width:auto;min-width:36px;height:40px;flex-shrink:0}.inbox-button svg{width:19px;height:19px}.inbox-new{display:inline-block;font-size:8px;font-weight:700;line-height:1;letter-spacing:.2px;color:var(--ink);white-space:nowrap}.discovery-home{padding-top:16px}

.history-title-row{display:flex;align-items:center;justify-content:space-between;gap:14px}.history-title-row h1{margin:0;font-size:30px;white-space:nowrap}.history-title-row .history-sort-label{margin:0;display:flex;flex-direction:row;align-items:center;gap:8px;font-size:12px;flex-shrink:0}.history-sort-label select{padding:9px 10px;max-width:115px}.history-page-head>p{margin-top:12px}.account-logout-row{margin-top:12px;border:1px solid var(--line);border-radius:10px;padding:16px!important}@media(max-width:360px){.history-sort-label>span{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0)}.history-title-row h1{font-size:26px}}

/* Home filters share a single row. */
.discovery-quick{flex-wrap:nowrap;gap:8px}.discovery-quick .filter-row{flex-wrap:nowrap;flex-shrink:0;gap:6px}.discovery-quick .genre-filter{margin:0 0 0 auto;gap:7px;font-size:12px;white-space:nowrap;min-width:0}.discovery-quick .genre-filter select{min-width:0;max-width:136px;padding:9px 10px;font-size:12px;height:40px}@media(max-width:360px){.discovery-quick .filter-row button{padding:8px 12px}.discovery-quick .genre-filter{gap:4px}.discovery-quick .genre-filter select{max-width:112px;padding:9px 6px}}
.header-right .inbox-button{position:relative;width:40px;min-width:40px;height:40px;padding:0;overflow:visible}.inbox-button .inbox-new{position:absolute;top:1px;right:-6px;z-index:1;background:#e53945;color:#fff;border:2px solid var(--bg);border-radius:8px;padding:3px 4px;font-size:8px;font-weight:800;line-height:1;letter-spacing:.2px;pointer-events:none}.header-right{gap:10px}

/* Public browsing and social sign-in */
.social-login-buttons{display:grid;gap:12px;margin:28px 0}.social-login{min-height:54px;border-radius:12px;font-size:16px;font-weight:700;border:1px solid #444}.social-login.kakao{background:#fee500;color:#191919}.social-login.google{background:#fff;color:#222}.social-login.naver{background:#03c75a;color:#fff}.social-login:disabled{opacity:.6;cursor:not-allowed}.guest-catalog{max-width:1100px;margin:auto;padding:24px 16px}.guest-catalog header{display:flex;align-items:center;justify-content:space-between;margin-bottom:32px}.guest-catalog header strong{letter-spacing:4px;font-size:24px}.guest-catalog h1{font-size:24px;margin-bottom:24px}.guest-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:18px}.guest-card{text-align:left;border:1px solid #303030;border-radius:16px;background:#191919;color:#eee;overflow:hidden;padding:0 0 16px;cursor:pointer}.guest-card img{width:100%;aspect-ratio:3/4;object-fit:cover}.guest-card>span,.guest-card>h2,.guest-card>p{display:block;margin:12px 14px}.guest-card h2{font-size:18px;line-height:1.4}.guest-card p{font-size:14px;color:#bbb;line-height:1.6}.guest-detail>img{width:100%;max-height:440px;object-fit:cover;object-position:top;border-radius:16px}.guest-description{white-space:pre-line;line-height:1.8}@media(max-width:440px){.guest-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.guest-card h2{font-size:16px}.guest-card>span,.guest-card>h2,.guest-card>p{margin:10px}}

/* Public catalogue shares the app navigation and preserves complete cover artwork. */
.guest-catalog{padding-bottom:100px}.guest-catalog .brand{padding:0}.guest-catalog .nanga-app-mark,.account-login .nanga-app-mark{width:44px;height:44px;object-fit:contain}.guest-card img{display:block;aspect-ratio:2/3;object-fit:contain;object-position:center;background:#111}.guest-detail>img{display:block;height:auto;max-height:none;aspect-ratio:2/3;object-fit:contain;background:#111}.account-login{margin-bottom:100px}.guest-nav{background:#111;color:#fff}.guest-nav button{border:0;background:none;min-height:44px}.guest-nav svg{fill:none;stroke:currentColor;stroke-width:1.6;width:22px;height:22px}.guest-nav .active{color:#fff}

.registration h1{font-size:28px;line-height:1.45}.registration .control{display:grid;gap:10px;margin:24px 0}.registration input:not([type=checkbox]){font-size:16px;padding:14px;border:1px solid #444;border-radius:10px;background:#191919;color:#fff}.consent-panel{margin:30px 0;padding:20px;background:#202020;border-radius:16px}.consent-panel h2{font-size:22px}.consent-row{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:54px;font-size:15px}.consent-row label{display:flex;align-items:center;gap:8px}.consent-row input{width:20px;height:20px;accent-color:#fff;flex-shrink:0}.consent-row a{white-space:nowrap;font-size:13px;color:#ddd}.registration .primary:disabled{opacity:.4}.consent-panel .tiny{line-height:1.8}
.guest-card{display:flex;flex-direction:column;align-items:stretch;justify-content:flex-start}.guest-card img{flex:none}.guest-card>span,.guest-card>h2,.guest-card>p{flex:none}

.site-legal{max-width:1200px;margin:24px auto 90px;padding:24px;color:#aaa;font-size:12px;line-height:1.8;border-top:1px solid #292929}.site-legal strong{color:#eee;font-size:16px;letter-spacing:.12em}.site-legal p{margin:6px 0}.site-legal nav{display:flex;flex-wrap:wrap;gap:16px}.site-legal a{color:inherit}.site-legal{display:none}body:has(.guest-catalog)>.site-legal,body:has(.social-login-buttons)>.site-legal{display:block}
