:root{--paper:#f7f6f0;--paper-deep:#efeee5;--ink:#243f35;--green:#2f5a48;--green-dark:#1e4538;--muted:#8a9083;--border:#dedfd3;--red:#ad5546;--serif:'Noto Serif SC','Songti SC','STSong',serif;--sans:-apple-system,BlinkMacSystemFont,'PingFang SC','Microsoft YaHei',sans-serif}*{box-sizing:border-box}body{margin:0;color:var(--ink);font-family:var(--sans);font-size:14px;background:var(--paper);-webkit-font-smoothing:antialiased}body:before{content:'';position:fixed;inset:0;pointer-events:none;z-index:100;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.75' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' opacity='.13' filter='url(%23n)'/%3E%3C/svg%3E");opacity:.17;mix-blend-mode:multiply}button,input,textarea,select{font:inherit}button,a,input,textarea,select{-webkit-tap-highlight-color:transparent}button,a{touch-action:manipulation}button{cursor:pointer;color:inherit}button:disabled{cursor:not-allowed;opacity:.5}a{color:inherit;text-decoration:none}button{border:0;background:none}input,textarea,select{border:1px solid var(--border);color:var(--ink);background:#fffefa;border-radius:6px;outline:none}input:focus,textarea:focus,select:focus{border-color:#678a6e;box-shadow:0 0 0 3px #658e7020}button:focus-visible,a:focus-visible,summary:focus-visible{outline:3px solid #b1ba8e;outline-offset:4px}input::placeholder,textarea::placeholder{color:#a5a79b}svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round;flex-shrink:0}svg.icon-defs{position:absolute;width:0;height:0;overflow:hidden}[hidden]{display:none!important}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.mini-label{font-size:11px;letter-spacing:2px;color:var(--muted)}.brand{display:flex;align-items:center;gap:11px}.brand-seal{font-family:var(--serif);font-size:24px;line-height:38px;text-align:center;width:37px;height:40px;border:1px solid #b1ba9a;border-radius:2px;position:relative;transform:rotate(-3deg);color:#f4f1da}.brand-seal:after{content:'';position:absolute;inset:3px;border:1px solid #a7b18c70}.brand b{display:block;font-family:var(--serif);font-size:19px;font-weight:600;letter-spacing:3px;color:#f4f1df}.brand small{display:block;font-size:8px;letter-spacing:1.3px;color:#abb99f;margin-top:6px}.brand-dark b,.brand-dark .brand-seal{color:var(--ink)}.brand-dark .brand-seal{border-color:var(--green)}.brand-dark small{color:#83917e}.primary-button{display:inline-flex;align-items:center;justify-content:center;gap:13px;background:var(--green);color:#fffcf1;border:1px solid var(--green);border-radius:5px;padding:14px 23px;min-height:48px;font-weight:500;transition:background .2s,transform .2s,box-shadow .2s}.primary-button:hover:not(:disabled){background:var(--green-dark);box-shadow:0 5px 16px #25473715}.primary-button:active:not(:disabled){transform:translateY(1px)}.primary-button svg{width:18px;height:18px}.icon-button{width:35px;height:35px;display:inline-flex;align-items:center;justify-content:center;border-radius:5px;transition:background .2s}.icon-button:hover{background:#dfe4d66b}.text-button{display:flex;align-items:center;gap:8px;font-size:12px;color:#6e796b;padding:6px 3px}.text-button svg{width:16px;height:16px}.text-button:hover{color:var(--green)}.link-button{font-size:12px;color:var(--green);text-decoration:underline;text-underline-offset:3px;padding:4px}.subtle-button{display:inline-flex;align-items:center;justify-content:center;gap:7px;padding:9px 12px;font-size:12px;background:#f9f9f2;border:1px solid var(--border);border-radius:5px}.subtle-button:hover{background:#e9eddf}.subtle-button svg{width:16px;height:16px}.initial-loading{position:fixed;inset:0;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:20px;background:var(--paper);z-index:120;color:#86917c;font-size:12px;letter-spacing:3px}.loading-seal{display:block;border:1px solid var(--green);width:48px;height:54px;text-align:center;line-height:52px;font:30px/52px var(--serif);color:var(--green);animation:sealBreathe 1.8s ease-in-out infinite}.app-layout{display:grid;grid-template-columns:226px minmax(0,1fr);min-height:100vh}.sidebar{background:#244a3d;color:#d4dbc7;padding:33px 23px 20px;display:flex;flex-direction:column;position:fixed;width:226px;height:100dvh;z-index:25;overflow:hidden;background-image:radial-gradient(ellipse at 0 100%,#58755545,transparent 55%)}.sidebar-divider{height:1px;background:#b3c19e24;margin:31px 0 26px}.history-heading{display:flex;justify-content:space-between;align-items:center;font-family:var(--serif);font-size:14px;letter-spacing:1px}.history-heading>span:first-child{display:flex;align-items:center;gap:8px}.history-heading svg{width:17px;height:17px;stroke:#bdc8a7}.history-count{font-family:var(--sans);font-size:10px;line-height:19px;min-width:23px;padding:0 5px;text-align:center;background:#b3c19e15;border-radius:3px;color:#b3c19e}.sidebar-description{font-size:10px;letter-spacing:.4px;color:#9daf97;line-height:1.8;margin:10px 0 24px}.history-list{overflow:auto;scrollbar-width:thin;scrollbar-color:#6f8665 transparent;margin:0 -8px;padding:0 8px;min-height:0;flex:1}.history-card{position:relative;margin:0 0 19px;border-radius:4px;padding:5px;background:#bbcaa10a;transition:background .2s;cursor:pointer;outline:none}.history-card:hover,.history-card.selected{background:#b5c29d28}.history-card.selected:before{content:'';height:22px;width:2px;position:absolute;left:-5px;top:40%;background:#d4ddab}.history-card img{display:block;width:100%;aspect-ratio:16/9;object-fit:cover;border-radius:2px;filter:saturate(.85)}.history-card-meta{display:flex;align-items:center;justify-content:space-between;padding:9px 3px 2px;gap:3px}.history-card-title{font-size:11px;font-weight:400;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;color:#d5ddc8;max-width:140px}.history-card-menu{color:#a9ba9d;font-size:18px;line-height:18px;letter-spacing:1px;opacity:.7;padding:0 2px}.history-card-menu:hover{opacity:1}.history-card-time{font-size:9px;color:#91a38b;padding:2px 3px 3px}.history-empty{margin-top:28px;text-align:center;flex:1;color:#a9b59b}.empty-scroll{position:relative;width:144px;height:127px;border:1px solid #a4b28e2e;margin:0 auto 19px;padding:10px;transform:rotate(-3deg)}.empty-scroll:before{content:'';position:absolute;inset:5px;border:1px solid #a4b28e18}.empty-scroll svg{width:120px;height:100px;color:#a6b58a;opacity:.68}.empty-seal{position:absolute;bottom:7px;right:9px;font:9px var(--serif);letter-spacing:2px;border:1px solid #bb9b6c7a;padding:3px;color:#c4ac85}.history-empty p{font:13px var(--serif);letter-spacing:2px;color:#b8c6a7;margin-bottom:10px}.history-empty>span{font-size:10px;line-height:2;color:#8fa387}.sidebar-bottom{padding-top:30px;flex-shrink:0}.sidebar-quote{font-family:var(--serif);font-size:11px;letter-spacing:.8px;color:#b0bea1;margin-bottom:13px}.sidebar-bottom>span{font-size:9px;letter-spacing:1px;color:#8a9e81}.sidebar-bottom i,.classroom-label i,.secure-dot{display:inline-block;border-radius:50%;background:#b3c38d;width:5px;height:5px;margin-right:6px;vertical-align:2px}.workspace{grid-column:2;min-width:0;display:flex;flex-direction:column;min-height:100dvh}.topbar{height:78px;min-height:78px;display:flex;align-items:center;justify-content:space-between;padding:0 44px;border-bottom:1px solid #dfe2d55e;background:#f8f7f180}.topbar-left,.topbar-actions{display:flex;align-items:center;gap:18px}.classroom-label{font-size:12px;letter-spacing:1px;color:#5a705b}.classroom-label i{background:#859a6f;width:4px;height:4px;vertical-align:2px}.topbar-divider{height:12px;width:1px;background:#daddd0;display:block}.topbar-note{font-size:11px;color:#9d9f91;letter-spacing:.5px}.topbar-actions{gap:14px}.mobile-menu{display:none}.main-body{flex:1;padding:0 42px;position:relative;min-height:650px}.compose-view{max-width:1130px;margin:auto;position:relative;min-height:690px;display:flex;flex-direction:column}.hero-content{text-align:center;padding:77px 0 135px;position:relative;z-index:1;pointer-events:none}.hero-kicker{display:flex;align-items:center;justify-content:center;gap:13px;color:#839071;font-size:10px;letter-spacing:3px}.hero-kicker span{height:1px;width:28px;background:#b4bca1}.hero-content h1{font:500 clamp(34px,3.3vw,52px)/1.5 var(--serif);letter-spacing:6px;margin:22px 0 13px;color:#284f3c}.hero-content h1>span{color:var(--red);margin-left:-4px}.hero-description{font-size:12px;color:#858b7b;letter-spacing:1px;margin:0}.hero-character{font:280px/1 var(--serif);position:absolute;top:2px;left:50%;transform:translateX(-50%);opacity:.027;color:#203d2e;z-index:-1}.hero-vertical{position:absolute;right:31px;top:98px;writing-mode:vertical-rl;color:#8d997e;font:10px var(--serif);letter-spacing:5px}.hero-landscape{position:absolute;inset:125px -42px auto;height:350px;background:url('/mountains.svg') center bottom/cover no-repeat;pointer-events:none;opacity:.88}.composer-wrap{position:relative;z-index:2;width:100%;max-width:800px;margin:-13px auto 0}.composer{background:#fffef8e8;backdrop-filter:blur(5px);border:1px solid #d4dac75c;box-shadow:0 8px 34px #4a60330c,0 2px 8px #4a603309;border-radius:9px;overflow:hidden}.composer-top{display:flex;align-items:center;justify-content:space-between;padding:17px 22px 0}.input-tabs{display:flex;align-items:center;gap:20px}.input-tab{display:flex;align-items:center;gap:6px;font-size:11px;padding:4px 0 10px;color:#969b8b;position:relative}.input-tab svg{width:15px;height:15px}.input-tab.active{color:var(--green);font-weight:600}.input-tab.active:after{content:'';width:19px;height:2px;background:var(--green);position:absolute;bottom:0;left:50%;transform:translateX(-50%)}.composer-hint{font-size:9px;color:#b2b6a6;letter-spacing:1px}#text-panel{position:relative}#idea-input{display:block;border:0;background:none;resize:vertical;width:100%;min-height:119px;max-height:300px;padding:22px 24px 32px;line-height:1.9;font-size:13px;letter-spacing:.3px;box-shadow:none}.char-count{position:absolute;bottom:12px;right:25px;font-size:9px;color:#afb3a4}.composer-bottom{display:flex;align-items:center;justify-content:space-between;padding:14px 18px 15px 23px;border-top:1px solid #e9ebdf88;background:#f5f7ee7a;gap:10px}.generation-options{display:flex;align-items:center;gap:12px;min-width:0}.model-control{position:relative;display:flex;align-items:center;gap:6px;color:#586f51}.model-control>svg:first-child{width:14px;height:14px}.model-control select{border:0;background:none;padding:6px 20px 6px 1px;border-radius:3px;font-size:10px;max-width:210px;appearance:none;box-shadow:none}.select-chevron{position:absolute;right:2px;width:10px;height:10px;pointer-events:none}.format-badge{white-space:nowrap;font-size:9px;color:#929d80;border-left:1px solid #dfe4d4;padding-left:12px;letter-spacing:.6px}.format-badge i{display:inline-block;width:2px;height:2px;border-radius:50%;background:#a9b29b;vertical-align:2px;margin:0 5px}.generate-button{min-height:39px;padding:10px 17px;font-size:11px;gap:8px}.generate-button svg{width:14px;height:14px}.generate-button>svg:first-child{width:15px;height:15px}.inspiration-row{display:flex;align-items:center;justify-content:center;gap:10px;margin-top:22px;flex-wrap:wrap}.inspiration-row>span{color:#a0a58e;font-size:10px;margin-right:2px}.idea-chip{padding:6px 12px;border:1px solid #dce1d0;background:#f6f7ef;border-radius:4px;font-size:10px;color:#808d70;transition:background .2s,border-color .2s}.idea-chip:hover{background:#e9efdf;border-color:#b5c49e;color:var(--green)}.creation-notes{display:flex;align-items:center;justify-content:center;gap:17px;margin:43px 0 36px;color:#a5aa99;font-size:9px;letter-spacing:.6px}.creation-notes span{display:flex;align-items:center;gap:6px}.creation-notes svg{width:13px;height:13px}.creation-notes>i{width:3px;height:3px;background:#c4cbb6;border-radius:50%}.workspace-footer{margin:auto 42px 0;padding:20px 0 18px;border-top:1px solid #dce0d16b;display:flex;align-items:center;justify-content:space-between;color:#a3aa95;font-size:9px;letter-spacing:.8px}.workspace-footer>span:first-child{font-family:var(--serif);letter-spacing:2px}.setup-notice{position:absolute;z-index:5;top:14px;left:50%;transform:translateX(-50%);display:flex;align-items:center;justify-content:center;gap:8px;padding:9px 14px;border-radius:4px;border:1px solid #dbd9bc;background:#f9f6e8;color:#8a855f;font-size:10px;max-width:calc(100% - 40px);white-space:nowrap}.setup-notice svg{width:14px;height:14px}.setup-notice button{color:#476f45;font-weight:600;font-size:10px;margin-left:7px}.setup-notice button span{margin-left:5px}.generation-error{padding:10px 14px;background:#fff1e9;border:1px solid #ecd3c8;color:#9f5846;font-size:12px;line-height:1.7;border-radius:5px;margin-bottom:-5px}.voice-panel{padding:23px 25px;min-height:119px;display:flex;align-items:center;gap:20px;position:relative}.voice-orbit{width:60px;height:60px;position:relative;display:flex;align-items:center;justify-content:center;flex-shrink:0}.voice-orbit>span{position:absolute;inset:0;border:1px solid #b6c49e;border-radius:50%;opacity:.4;transform:scale(1)}.voice-orbit>span:nth-child(2){inset:6px;opacity:.7}.record-button{width:44px;height:44px;border-radius:50%;color:var(--green);background:#e8eddf;z-index:1;display:flex;align-items:center;justify-content:center}.record-button svg{width:20px;height:20px}.voice-info{display:flex;flex-direction:column;gap:7px;z-index:1}.voice-info strong{font-size:12px;font-weight:500}.voice-info>span{font-size:10px;color:#9ca38f}.voice-orbit.recording>span{animation:recordPulse 2s ease-out infinite}.voice-orbit.recording>span:nth-child(2){animation-delay:1s}.voice-orbit.recording .record-button{background:var(--red);color:#fffaf0;box-shadow:0 0 22px #b65b432a}.voice-orbit.recording .record-button svg{display:none}.voice-orbit.recording .record-button:after{content:'';width:13px;height:13px;border-radius:2px;background:#fffaf0}.voice-ready-controls{display:flex;align-items:center;gap:8px}.voice-ready-controls audio{width:200px;height:28px}#waveform{position:absolute;right:24px;width:220px;height:43px;max-width:35%;opacity:.7}.generating-view{text-align:center;padding:30px 0 70px;min-height:650px;display:flex;flex-direction:column;align-items:center;justify-content:center}.ink-scene{position:relative;width:290px;height:220px;margin:0 auto 26px;overflow:visible}.ink-orbit{position:absolute;width:187px;height:187px;border:1px solid #cdd5bb9c;border-radius:50%;top:2px;left:54px;animation:orbitMorph 9s ease-in-out infinite}.ink-sun{position:absolute;width:37px;height:37px;border-radius:50%;background:#c2795b85;left:169px;top:24px;box-shadow:0 0 27px #d9ad7f22;animation:sunFloat 4s ease-in-out infinite}.ink-mountain{position:absolute;bottom:45px;clip-path:polygon(0 100%,14% 73%,25% 55%,38% 4%,49% 35%,56% 24%,76% 70%,87% 60%,100% 100%);border-radius:45%;animation:mountainBreathe 4s ease-in-out infinite}.mountain-back{width:231px;height:128px;left:45px;background:linear-gradient(160deg,#acbda080,#809f8c40)}.mountain-middle{width:206px;height:107px;left:2px;bottom:32px;background:linear-gradient(140deg,#527e675c,#5e876c22);animation-delay:-1.3s}.mountain-front{width:185px;height:84px;left:105px;bottom:23px;background:linear-gradient(140deg,#38694e8c,#9bb29129);animation-delay:-2s}.ink-water{position:absolute;bottom:12px;left:14px;width:270px;height:54px;background:radial-gradient(ellipse,#76977525 0,transparent 70%);transform:scaleY(.5)}.ink-seal{font-family:var(--serif);position:absolute;left:4px;top:37px;font-size:10px;line-height:1.5;letter-spacing:2px;border:1px solid #ad725d9c;color:#ad725d;padding:6px 4px;transform:rotate(-4deg)}.ink-dot{position:absolute;background:#71906d;border-radius:45%;opacity:.4;animation:inkFloat 4s ease-in-out infinite}.dot-one{width:6px;height:6px;left:37px;top:24px}.dot-two{width:4px;height:4px;right:1px;top:120px;animation-delay:-1s}.dot-three{width:3px;height:3px;left:85px;top:0;animation-delay:-2s}.generating-view h2{font:500 28px var(--serif);letter-spacing:4px;margin:15px 0 12px}.generating-view>p{font-size:12px;color:#8d987e;line-height:1.8}.progress-steps{display:flex;align-items:center;gap:13px;margin:23px 0 10px;font-size:11px;color:#aeb4a3}.progress-steps span{display:flex;align-items:center;gap:8px}.progress-steps i{font-size:9px;font-style:normal;border:1px solid #dce1d1;border-radius:50%;width:22px;height:22px;display:inline-flex;justify-content:center;align-items:center}.progress-steps b{height:1px;width:48px;background:#dbe1ce}.progress-steps .active{color:#56744d}.progress-steps .active i{border-color:#b6c5a2;background:#edf2e3;animation:sealBreathe 2s ease-in-out infinite}.progress-steps .done{color:#789366}.progress-steps .done i{background:#dce6cf;border-color:#c1cdb0}.generating-view .generation-patience{font-size:10px;letter-spacing:.3px;color:#a4ae97;margin-top:24px}.result-view{max-width:1040px;margin:33px auto 45px;animation:reveal .6s ease-out}.result-top{display:flex;align-items:center;justify-content:space-between;gap:15px;margin:0 0 22px}.result-top .mini-label{font-size:9px;letter-spacing:2px}.result-top h1{font:500 27px/1.5 var(--serif);letter-spacing:3px;margin:8px 0 0}.result-actions{display:flex;align-items:center;gap:9px}.result-frame{position:relative;aspect-ratio:16/9;background:#e7e9dd;padding:7px;border:1px solid #d4dcc5;box-shadow:0 6px 25px #41543312;border-radius:3px}.result-frame:before,.result-frame:after{content:'';position:absolute;width:15px;height:15px;border-color:#a2ad8d;border-style:solid;z-index:1;pointer-events:none}.result-frame:before{top:-3px;left:-3px;border-width:1px 0 0 1px}.result-frame:after{bottom:-3px;right:-3px;border-width:0 1px 1px 0}.result-frame img{display:block;width:100%;height:100%;object-fit:contain;background:#f0eee5}.image-expand{position:absolute;bottom:17px;right:17px;width:32px;height:32px;background:#f7f6eae6;border-radius:4px;display:flex;align-items:center;justify-content:center;color:#45613d;opacity:0;transition:opacity .2s}.result-frame:hover .image-expand,.image-expand:focus-visible{opacity:1}.image-expand svg{width:17px;height:17px}.result-meta{display:flex;align-items:center;justify-content:space-between;font-size:10px;color:#9aa38d;margin:13px 3px 0;letter-spacing:.4px}.story-details{border-top:1px solid #e0e4d5;border-bottom:1px solid #e0e4d5;margin-top:22px}.story-details summary{display:flex;align-items:center;justify-content:space-between;padding:15px 3px;cursor:pointer;list-style:none;font-size:12px;color:#708262}.story-details summary::-webkit-details-marker{display:none}.story-details summary span{display:flex;align-items:center;gap:8px}.story-details summary svg{width:15px;height:15px}.story-details[open] summary>svg{transform:rotate(180deg)}.story-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:20px;padding:8px 3px 22px}.story-part{border-left:1px solid #dce3cf;padding-left:13px}.story-part>span{font:italic 12px var(--serif);color:#9bab8d}.story-part h3{font:500 13px var(--serif);letter-spacing:1px;line-height:1.7;margin:8px 0}.story-part p{font-size:11px;line-height:1.8;color:#8b947d;margin:0}.next-section{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-top:25px}.next-section>div{display:flex;flex-direction:column;gap:8px}.next-section strong{font:12px var(--serif);letter-spacing:1px;color:#788769}.next-section>div span{font-size:10px;color:#a8af9b}.next-section .primary-button{min-width:143px;justify-content:space-between;font-size:12px;padding:13px 20px;min-height:43px}.settings-dialog{border:0;padding:0;margin:0 0 0 auto;width:min(580px,100%);height:100dvh;max-height:100dvh;background:#faf9f3;color:var(--ink);box-shadow:-15px 0 60px #223a262e;max-width:100%;border-left:1px solid #e0e4d4;overflow:hidden}.settings-dialog::backdrop{background:#1d342e60;backdrop-filter:blur(3px)}.settings-header{padding:29px 32px 22px;border-bottom:1px solid var(--border);display:flex;align-items:center;justify-content:space-between}.settings-header h2{font:500 25px var(--serif);letter-spacing:3px;margin:10px 0 0}.settings-header .mini-label{font-size:9px;letter-spacing:1px}.settings-dialog form{display:flex;flex-direction:column;height:calc(100% - 115px)}.settings-content{overflow:auto;padding:0 32px 15px;flex:1;scrollbar-width:thin;scrollbar-color:#c7d0b7 transparent}.settings-section{padding:27px 0 25px;border-bottom:1px solid var(--border)}.settings-section:last-of-type{border:0}.settings-section h3{font:500 15px var(--serif);letter-spacing:1px;margin:0 0 11px;display:flex;gap:10px;align-items:center}.settings-section h3>span{font:10px var(--sans);color:#9daa8b;border:1px solid #d7dfca;border-radius:50%;width:23px;height:23px;display:flex;align-items:center;justify-content:center}.section-help{font-size:11px;line-height:1.9;color:#9b9f8e;margin:0 0 18px}.settings-section label{display:flex;align-items:center;gap:8px;flex-wrap:wrap;font-size:11px;margin:18px 0 8px;font-weight:500;color:#637758}.field-caption{font-weight:400;font-size:10px;color:#a9ad9a}.settings-section input,.settings-section textarea{width:100%;padding:11px 12px;font-size:12px;line-height:1.6}.settings-section textarea{resize:vertical;min-height:180px;max-height:550px;font-size:11px;line-height:1.9}.key-status{font-weight:400;font-size:9px;letter-spacing:0}.key-status.configured{color:#5e824c;background:#edf2e3;padding:3px 6px;border-radius:3px}.key-status.empty{color:#a08e6d}.key-input-wrap{position:relative}.key-remove{font-size:10px;padding:7px 0 0;color:#ad715e}.test-connection{display:flex;align-items:center;gap:10px;margin-top:15px}.test-connection>span{font-size:9px;line-height:1.7;color:#a2a78e}.test-connection .subtle-button{flex-shrink:0;font-size:10px;padding:8px 10px;background:#f5f6eb}.test-result{font-size:11px;line-height:1.8;margin:12px 0 0;color:#5d7b4b}.test-result.error{color:#ac6550}.model-edit-row{display:grid;grid-template-columns:145px minmax(0,1fr);gap:10px;margin-bottom:11px}.model-edit-row input{font-size:11px;padding:9px 10px}.model-edit-head{display:grid;grid-template-columns:145px minmax(0,1fr);gap:10px;font-size:10px;color:#9aa58a;margin-bottom:8px}.settings-note{display:flex;align-items:flex-start;gap:6px;font-size:9px;line-height:1.8;color:#a2aa93;margin:13px 0 0}.settings-note svg{width:12px;height:12px;margin-top:2px}.prompt-label{display:flex;align-items:center;justify-content:space-between}.prompt-label label{margin:8px 0 9px}.prompt-label .link-button{font-size:10px}.settings-footer{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:17px 32px;border-top:1px solid var(--border);background:#f7f8ef;flex-shrink:0}.settings-footer>span{font-size:10px;color:#a0a98e}.settings-footer .primary-button{font-size:11px;padding:11px 18px;min-height:41px}.settings-footer svg{width:15px;height:15px}.field-error{color:#ab614c;font-size:11px;line-height:1.7;margin:11px 0}.fullscreen-dialog{border:0;width:100vw;height:100dvh;max-width:100vw;max-height:100dvh;margin:0;padding:42px;background:#162820f7;overflow:hidden}.fullscreen-dialog::backdrop{background:#172c23}.fullscreen-dialog img{display:block;width:100%;height:100%;object-fit:contain}.fullscreen-close{position:absolute;right:18px;top:14px;z-index:1;color:#e1e7d3;background:#ffffff10}.fullscreen-close:hover{background:#ffffff20}.context-menu{position:fixed;z-index:90;min-width:164px;background:#fdfbf3;border:1px solid #d9decc;border-radius:5px;padding:5px;box-shadow:0 8px 25px #203e2824}.context-menu button{display:flex;gap:8px;align-items:center;padding:9px 10px;font-size:11px;color:#a15c48;width:100%;border-radius:3px}.context-menu button:hover{background:#f2e8dd}.context-menu svg{width:14px;height:14px}.toast{position:fixed;bottom:28px;left:calc(50% + 113px);transform:translateX(-50%);z-index:130;background:#2f4e3dee;color:#f3f3df;padding:13px 21px;border-radius:5px;box-shadow:0 5px 25px #243b2520;font-size:12px;max-width:85vw;line-height:1.7;animation:reveal .25s ease-out}.flying-image{position:fixed;z-index:80;pointer-events:none;object-fit:cover;border:4px solid #f1f1e3;border-radius:3px;box-shadow:0 8px 30px #25432d30;transition:transform .65s cubic-bezier(.3,.05,.2,1),opacity .65s}.login-view{min-height:100dvh;position:relative;overflow:hidden;display:flex;flex-direction:column}.login-landscape{position:absolute;inset:auto 0 -5px;height:70%;min-height:440px;background:url('/mountains.svg') center bottom/cover no-repeat;opacity:.75;pointer-events:none}.login-top{display:flex;justify-content:space-between;align-items:center;padding:38px 6vw;position:relative;z-index:1}.login-eyebrow{font-family:var(--serif);font-size:11px;letter-spacing:4px;color:#839578}.login-main{display:flex;align-items:center;justify-content:space-between;max-width:1040px;width:86%;margin:auto;gap:70px;position:relative;z-index:1;padding:45px 0 90px}.login-intro{position:relative;padding-bottom:15px}.eyebrow{display:flex;align-items:center;gap:10px;font-size:8px;letter-spacing:2px;color:#8b9b7a;white-space:nowrap}.eyebrow i{width:23px;height:1px;background:#94a47c}.login-intro h1{font:500 clamp(46px,4.8vw,70px)/1.55 var(--serif);letter-spacing:8px;margin:25px 0 18px;color:#2f573e}.period{color:var(--red);margin-left:-7px}.login-intro p{font-size:13px;color:#899776;letter-spacing:2px;line-height:2.1}.login-stamp{font:12px/1.5 var(--serif);letter-spacing:3px;position:absolute;bottom:16px;right:14px;padding:7px 4px 6px 7px;border:1px solid #aa66519c;color:#ad6b55;transform:rotate(-5deg)}.login-card{width:355px;flex-shrink:0;padding:33px 32px 24px;background:#fffdf6ed;backdrop-filter:blur(10px);border:1px solid #d4dcc38f;border-radius:8px;box-shadow:0 12px 70px #4560380b}.login-card .mini-label{font-size:10px;letter-spacing:2px}.login-card h2{font:500 21px/1.6 var(--serif);letter-spacing:1px;margin:13px 0 9px}.login-card>p{font-size:11px;color:#9aa18b;line-height:1.8;margin:0 0 30px}.login-card>label{font-size:10px;color:#7d8e6b;display:block;margin:0 0 9px}.password-wrap{position:relative}.password-wrap svg{position:absolute;top:13px;left:13px;width:16px;height:16px;color:#9aa88a}.password-wrap input{height:44px;width:100%;font-size:12px;padding:0 12px 0 39px;background:#fafbf3}.login-card .field-error{margin:10px 0 0;color:#ab614c}.login-card .primary-button{width:100%;justify-content:space-between;font-size:12px;padding:13px 17px;margin-top:20px;min-height:45px}.login-foot{text-align:center;font-size:9px;letter-spacing:1px;color:#a6af96;margin-top:23px}.login-foot .secure-dot{width:4px;height:4px;background:#9eaf86;vertical-align:2px;margin-right:5px}.login-footer{position:relative;z-index:1;display:flex;justify-content:space-between;padding:20px 6vw 28px;font-size:9px;letter-spacing:1px;color:#859876}.sidebar-shade{position:fixed;inset:0;background:#15302470;z-index:24;backdrop-filter:blur(2px)}
@keyframes sealBreathe{0%,100%{opacity:.5}50%{opacity:1}}@keyframes recordPulse{0%{transform:scale(.7);opacity:.65}100%{transform:scale(1.6);opacity:0}}@keyframes orbitMorph{0%,100%{transform:rotate(0);border-radius:48% 52% 46% 54%}50%{transform:rotate(20deg);border-radius:56% 44% 54% 46%}}@keyframes sunFloat{0%,100%{transform:translateY(0);opacity:.7}50%{transform:translateY(-7px);opacity:1}}@keyframes mountainBreathe{0%,100%{transform:translateY(0);opacity:.8}50%{transform:translateY(-7px);opacity:1}}@keyframes inkFloat{0%,100%{transform:translateY(0) scale(.7);opacity:.2}50%{transform:translateY(-12px) scale(1.2);opacity:.6}}@keyframes reveal{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}
@media(min-width:1600px){.hero-content{padding-top:95px;padding-bottom:175px}.hero-landscape{top:145px;height:410px}.compose-view{min-height:790px}.composer-wrap{max-width:860px}.creation-notes{margin-top:46px}.main-body{min-height:790px}.generating-view{min-height:760px}}
@media(max-width:1150px){.app-layout{grid-template-columns:200px minmax(0,1fr)}.sidebar{width:200px;padding:28px 18px 18px}.brand{gap:9px}.brand b{font-size:17px;letter-spacing:2px}.brand small{font-size:7px;letter-spacing:1px}.brand-seal{width:33px;height:37px;line-height:35px;font-size:22px}.topbar{padding:0 27px}.main-body{padding:0 27px}.hero-landscape{inset:137px -27px auto;height:320px}.hero-content{padding:80px 0 116px}.hero-content h1{font-size:39px;letter-spacing:4px}.hero-vertical{right:0;top:105px}.topbar-note{display:none}.composer-hint{display:none}.composer-wrap{max-width:740px}.generation-options{gap:9px}.model-control select{font-size:10px;max-width:190px}.format-badge{font-size:8px;padding-left:9px}.creation-notes{gap:11px;font-size:8px}.workspace-footer{margin-left:27px;margin-right:27px}.toast{left:calc(50% + 100px)}}
@media(max-width:900px){.hero-content{padding-top:88px}.hero-content h1{font-size:32px;letter-spacing:3px}.hero-kicker{font-size:8px;letter-spacing:2px;gap:10px}.hero-description{font-size:10px;letter-spacing:.4px}.hero-vertical{display:none}.hero-character{font-size:240px;top:31px}.composer-top{padding:16px 18px 0}#idea-input{padding:20px 19px 32px;font-size:12px}.composer-bottom{padding:12px 13px 13px 17px}.format-badge{display:none}.inspiration-row{gap:7px}.inspiration-row>span{font-size:9px}.idea-chip{font-size:9px;padding:5px 8px}.creation-notes>span:last-child,.creation-notes>i:last-of-type{display:none}.voice-panel{padding:22px 18px;gap:15px}.voice-ready-controls{gap:4px}.voice-ready-controls audio{width:160px}.voice-info strong{font-size:11px}.voice-info>span{font-size:9px}.story-grid{grid-template-columns:repeat(2,1fr);gap:20px}.result-top h1{font-size:22px;letter-spacing:2px}.result-actions .subtle-button{font-size:10px;padding:8px}.workspace-footer>span:last-child{display:none}.login-main{gap:35px;width:88%}.login-card{width:325px;padding:28px}.login-intro h1{font-size:47px;letter-spacing:5px}.login-intro .eyebrow{font-size:6px;letter-spacing:1px}.login-stamp{right:0}.login-eyebrow{font-size:9px;letter-spacing:2px}}
@media(max-width:700px){.app-layout{display:block}.sidebar{width:226px;transform:translateX(-100%);transition:transform .25s ease}.sidebar.open{transform:translateX(0)}.brand b{font-size:19px;letter-spacing:3px}.brand small{font-size:8px}.brand-seal{width:37px;height:40px;line-height:38px;font-size:24px}.sidebar{padding:30px 23px 20px}.workspace{min-height:100dvh}.topbar{height:65px;min-height:65px;padding:0 17px}.mobile-menu{display:flex;margin-left:-4px}.topbar-left{gap:10px}.topbar-left>.topbar-divider{display:none}.topbar-actions{gap:8px}.text-button{font-size:11px;gap:5px}.text-button svg{width:15px;height:15px}.classroom-label{font-size:11px;letter-spacing:.5px}.topbar-divider{height:10px}.main-body{padding:0 20px;min-height:680px}.compose-view{min-height:680px}.hero-content{padding:82px 0 115px}.hero-content h1{font-size:33px;letter-spacing:2px;margin-top:23px;margin-bottom:13px;white-space:nowrap}.hero-kicker{font-size:8px;letter-spacing:2px;gap:10px}.hero-kicker span{width:18px}.hero-description{font-size:10px;letter-spacing:.2px}.hero-landscape{inset:155px -20px auto;height:252px;opacity:.82;background-size:auto 100%}.hero-character{font-size:225px;top:42px}.composer-wrap{margin-top:-10px}.composer-top{padding:16px 16px 0}.input-tabs{gap:22px}.input-tab{font-size:11px}#idea-input{min-height:128px;padding:20px 17px 35px;resize:none;font-size:12px}.char-count{right:18px}.composer-bottom{padding:12px;gap:6px}.generation-options{min-width:0}.model-control>svg:first-child{display:none}.model-control select{max-width:180px;font-size:10px;letter-spacing:-.2px}.generate-button{padding:10px 12px;font-size:11px;gap:6px;min-width:112px;flex-shrink:0}.generate-button>svg:first-child{display:none}.inspiration-row{gap:7px;row-gap:9px;margin-top:20px}.inspiration-row>span{width:100%;text-align:center;margin-bottom:0;font-size:9px}.idea-chip{font-size:9px;padding:6px 10px}.creation-notes{margin:28px 0 27px;gap:11px;font-size:8px;letter-spacing:.2px}.creation-notes>span:nth-of-type(2){font-size:8px}.creation-notes svg{width:11px;height:11px}.workspace-footer{margin:0 20px;padding:17px 0 18px;font-size:8px;letter-spacing:.2px}.workspace-footer>span:first-child{letter-spacing:1px}.setup-notice{top:14px;font-size:9px;padding:8px 9px;gap:5px;max-width:calc(100% - 32px)}.setup-notice button{font-size:9px;margin-left:0}.setup-notice svg{width:12px;height:12px}.voice-panel{padding:24px 16px;min-height:128px;gap:15px}.voice-orbit{width:52px;height:52px}.record-button{width:39px;height:39px}.voice-info{gap:7px}.voice-ready-controls audio{width:157px;height:27px}.voice-ready-controls .link-button{font-size:10px}.voice-info>span{font-size:9px}#waveform{width:100px;right:15px;max-width:25%}.voice-panel:has(.recording) .voice-info{max-width:58%}.voice-panel:has(.recording) #waveform{opacity:.4}.generating-view{min-height:640px;padding:35px 0 80px}.generating-view h2{font-size:24px;letter-spacing:2px}.generating-view>p{font-size:11px}.ink-scene{transform:scale(.9);margin-bottom:10px}.progress-steps{font-size:10px;gap:10px}.progress-steps b{width:35px}.generating-view .generation-patience{max-width:260px;font-size:9px}.result-view{margin:27px auto 35px}.result-top{margin-bottom:17px;gap:10px}.result-top h1{font-size:20px;letter-spacing:1px;line-height:1.6;margin-top:7px}.result-top .mini-label{font-size:8px;letter-spacing:1px}.result-actions{gap:2px;flex-shrink:0}.result-actions .subtle-button span{display:none}.result-actions .subtle-button{border:0;background:none;padding:8px}.result-actions .icon-button{width:30px}.result-frame{padding:4px}.result-meta{font-size:8px;letter-spacing:0;gap:10px;line-height:1.7;margin-top:10px}.result-meta>span:first-child{max-width:60%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.story-details{margin-top:19px}.story-details summary{font-size:11px;padding:13px 2px}.story-grid{gap:18px 13px}.story-part{padding-left:10px}.story-part h3{font-size:12px}.story-part p{font-size:10px}.next-section{margin-top:22px;gap:10px}.next-section strong{font-size:10px;letter-spacing:.3px;line-height:1.7}.next-section>div span{font-size:9px;line-height:1.7}.next-section .primary-button{min-width:105px;font-size:11px;padding:11px 14px}.toast{left:50%;bottom:22px;font-size:11px;padding:12px 17px}.settings-header{padding:26px 22px 21px}.settings-header h2{font-size:23px}.settings-content{padding:0 22px 15px}.settings-section{padding:24px 0}.settings-section h3{font-size:14px}.settings-footer{padding:16px 22px}.settings-footer>span{font-size:9px;line-height:1.8}.model-edit-row,.model-edit-head{grid-template-columns:105px minmax(0,1fr);gap:7px}.model-edit-row input{font-size:10px;padding:9px 8px}.test-connection{gap:8px}.test-connection>span{font-size:8px}.test-connection .subtle-button{font-size:9px;padding:8px}.fullscreen-dialog{padding:50px 8px}.login-top{padding:28px 25px}.login-eyebrow{display:none}.login-main{flex-direction:column;align-items:center;gap:37px;padding:20px 0 57px;width:100%;margin:15px auto auto}.login-intro{width:320px;padding:0 6px}.login-intro .eyebrow{font-size:7px;letter-spacing:1px}.login-intro h1{font-size:40px;line-height:1.55;letter-spacing:5px;margin:17px 0 12px}.login-intro h1 br{display:none}.login-intro p{font-size:11px;letter-spacing:1px;line-height:1.8;margin-bottom:0}.login-intro p br{display:none}.login-stamp{display:none}.login-card{width:calc(100% - 50px);max-width:355px;padding:28px 27px 23px}.login-card h2{font-size:20px}.login-card>p{margin-bottom:25px}.login-landscape{height:75%;min-height:490px;background-size:auto 100%;background-position:center bottom;opacity:.7}.login-footer{justify-content:center;font-size:8px;padding:20px 20px 25px;letter-spacing:.8px}.login-footer>span:last-child{display:none}}
@media(max-width:370px){.main-body{padding:0 15px}.hero-content h1{font-size:29px}.hero-description{font-size:9px}.model-control select{max-width:159px;font-size:9px}.generate-button{min-width:100px;padding:10px}.voice-info strong{font-size:10px}.voice-ready-controls audio{width:132px}.idea-chip{padding:6px 8px}.login-intro{width:295px}.login-intro h1{font-size:36px}.settings-footer{padding:16px}.settings-content{padding:0 16px}.test-connection{flex-wrap:wrap}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}.loading-seal{opacity:1}.image-expand{opacity:1}}
.story-grid.plain-story{display:block}.story-prompt{margin:0;white-space:pre-wrap;overflow-wrap:anywhere;font-size:13px;line-height:1.9;color:var(--ink)}
.result-image-state{position:absolute;inset:7px;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:13px;background:var(--paper-deep);padding:24px;text-align:center}.result-image-state p{font-size:13px;line-height:1.8;margin:0;color:var(--green)}.image-loading-mark{font:28px/1.4 var(--serif);border:1px solid #7f9677;padding:3px 8px;animation:sealBreathe 1.8s ease-in-out infinite}.image-load-error .image-loading-mark{animation:none;opacity:.5}.image-load-error p{color:var(--red)}

/* Streaming transcription keeps the paper-and-ink composer layout. */
.voice-info>.voice-mode-badge{align-self:flex-start;font-size:8px;letter-spacing:.5px;color:#6e835d;background:#edf1e3;border:1px solid #dce4cd;border-radius:3px;padding:3px 6px}.voice-orbit.connecting{animation:sealBreathe 1.8s ease-in-out infinite}.asr-transcript-wrap{margin:0 24px 17px;border-top:1px solid #e2e6d7;padding-top:16px}.asr-transcript-top{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:9px}.asr-transcript-top label{font-size:11px;color:#617453}.asr-transcript-top>span{font-size:9px;color:#879779;text-align:right}#asr-transcript{display:block;width:100%;min-height:112px;resize:vertical;padding:12px 13px;font-size:12px;line-height:1.9;background:#fffef8}#asr-transcript[readonly]{background:#f4f5eb;color:#718167}.asr-transcript-bottom{display:flex;align-items:flex-start;justify-content:space-between;gap:15px;margin-top:8px;font-size:9px;line-height:1.8;color:#9aa58c}.asr-transcript-bottom>span:last-child{white-space:nowrap}.settings-section select{width:100%;padding:11px 12px;font-size:12px;line-height:1.6}.voice-mode-description{margin-top:10px}.asr-settings{margin-top:24px;padding-top:21px;border-top:1px dashed #d9e0cb}.asr-settings h4{font:500 13px var(--serif);letter-spacing:1px;margin:0 0 9px;color:#5e7654}
@media(max-width:700px){.voice-mode-badge{font-size:8px!important}.asr-transcript-wrap{margin:0 16px 14px;padding-top:14px}.asr-transcript-top label{font-size:10px}.asr-transcript-top>span{font-size:8px;max-width:45%}#asr-transcript{font-size:11px;padding:10px 11px;min-height:118px}.asr-transcript-bottom{font-size:8px;gap:12px}.asr-transcript-bottom>span:first-child{max-width:75%}.settings-section select{font-size:11px}}
