*{box-sizing:border-box;margin:0;padding:0}:root{--bg:#f4f4f2;--bg-soft:#ececea;--surface:#fff;--surface-2:#f7f7f5;--text:#141416;--text-dim:#75757c;--line:#14141617;--line-strong:#1414162e;--accent:#141416;--accent-text:#fff;--shadow:0 18px 50px -24px #14141640}:root[data-theme=dark]{--bg:#0a0a0c;--bg-soft:#101013;--surface:#131316;--surface-2:#18181c;--text:#ececef;--text-dim:#82828c;--line:#ececef17;--line-strong:#ececef33;--accent:#ececef;--accent-text:#0a0a0c;--shadow:0 18px 50px -20px #000000b3}html,body,#root{height:100%}body{background:var(--bg);color:var(--text);-webkit-font-smoothing:antialiased;font-family:Inter,system-ui,sans-serif;transition:background .45s,color .45s;overflow:hidden}button{color:inherit;cursor:pointer;background:0 0;border:none;font-family:inherit}.app{flex-direction:column;height:100%;display:flex}.topbar{z-index:10;justify-content:space-between;align-items:center;padding:20px 28px;display:flex}.brand{letter-spacing:.16em;text-transform:lowercase;align-items:center;gap:10px;font-size:15px;font-weight:600;display:flex}.brand-mark{background:var(--text);border-radius:50%;width:9px;height:9px;transition:transform .4s cubic-bezier(.2,.8,.2,1),background .45s}.brand:hover .brand-mark{transform:scale(1.5)}.project-name{color:var(--text-dim);letter-spacing:.04em;font-size:13px;animation:.5s both fade-in}.theme-toggle{border:1px solid var(--line);background:var(--surface);border-radius:999px;align-items:center;gap:2px;padding:4px;transition:background .45s,border-color .45s;display:flex;position:relative}.toggle-icon{z-index:1;width:28px;height:28px;color:var(--text-dim);place-items:center;transition:color .3s;display:grid;position:relative}.toggle-icon.active{color:var(--accent-text)}.toggle-pill{background:var(--accent);border-radius:50%;width:28px;height:28px;transition:transform .35s cubic-bezier(.3,1.3,.4,1),background .45s;position:absolute;top:4px;left:4px}.toggle-pill.dark{transform:translate(30px)}.topbar-right{align-items:center;gap:14px;display:flex}.user-email{color:var(--text-dim);letter-spacing:.03em;font-size:12px}.logout-btn{color:var(--text-dim);border:1px solid var(--line);border-radius:999px;padding:6px 12px;font-size:12px;transition:color .25s,border-color .25s}.logout-btn:hover{color:var(--text);border-color:var(--line-strong)}.app-landing{overflow:hidden auto}.app-landing .topbar{background:color-mix(in srgb, var(--bg) 82%, transparent);-webkit-backdrop-filter:blur(14px);position:sticky;top:0}.landing{flex-direction:column;display:flex}.hero{place-items:center;min-height:calc(100vh - 76px);padding:20px 48px 60px;display:grid;position:relative}.demo-wrap{position:relative}.demo-3d{opacity:.55;pointer-events:none;animation:1.4s both fade-in;position:absolute;inset:-78% -50%}.demo-wrap .demo-window{z-index:1;position:relative}.hero-inner{z-index:1;grid-template-columns:minmax(340px,1fr) minmax(420px,620px);align-items:center;gap:56px;width:100%;max-width:1200px;display:grid;position:relative}.hero-title{letter-spacing:-.03em;margin:18px 0 20px;font-size:clamp(34px,4.2vw,54px);font-weight:300;line-height:1.1;animation:.8s cubic-bezier(.2,.8,.2,1) .15s both rise}.hero-sub{color:var(--text-dim);max-width:420px;margin-bottom:34px;font-size:16px;line-height:1.65;animation:.8s cubic-bezier(.2,.8,.2,1) .25s both rise}.hero-cta{align-items:center;gap:14px;animation:.8s cubic-bezier(.2,.8,.2,1) .35s both rise;display:flex}.btn-ghost{border:1px solid var(--line-strong);border-radius:999px;padding:14px 26px;font-size:15px;font-weight:500;transition:border-color .25s,transform .25s}.btn-ghost:hover{border-color:var(--text);transform:translateY(-2px)}.demo-window{background:var(--surface);border:1px solid var(--line);box-shadow:var(--shadow);border-radius:20px;transition:background .45s,border-color .45s;animation:.9s cubic-bezier(.2,.8,.2,1) .3s both rise;overflow:hidden}.demo-titlebar{border-bottom:1px solid var(--line);align-items:center;gap:6px;padding:12px 16px;display:flex}.demo-titlebar span{background:var(--line-strong);border-radius:50%;width:10px;height:10px}.demo-titlebar p{letter-spacing:.08em;color:var(--text-dim);margin-left:10px;font-size:11px}.demo-body{grid-template-columns:1fr 210px;gap:12px;height:320px;padding:12px;display:grid}.demo-canvas{background:var(--surface-2);border:1px solid var(--line);border-radius:12px;place-items:center;display:grid;overflow:hidden}.demo-photo{object-fit:cover;opacity:0;width:100%;height:100%;transition:opacity .5s,transform .5s cubic-bezier(.2,.8,.2,1);transform:scale(.96)}.demo-photo.visible{opacity:1;transform:scale(1)}.demo-photo .layer{transition:opacity 1.1s}.demo-photo .star{animation:2.2s infinite star-twinkle}.demo-drop{text-align:center;color:var(--text-dim);animation:.5s both fade-in}.demo-drop-icon{border:1px dashed var(--line-strong);border-radius:12px;place-items:center;width:44px;height:44px;margin:0 auto 10px;font-size:18px;display:grid}.demo-drop p{font-size:12px}.demo-chat{background:var(--surface-2);border:1px solid var(--line);border-radius:12px;flex-direction:column;display:flex;overflow:hidden}.demo-chat-scroll{scrollbar-width:none;flex-direction:column;flex:1;gap:8px;padding:12px;display:flex;overflow-y:auto}.demo-chat-scroll::-webkit-scrollbar{display:none}.demo-chat .msg{border-radius:13px;padding:8px 12px;font-size:12px;line-height:1.45}.demo-chat .msg.agent{background:var(--surface)}.demo-chat .msg.typing{padding:11px 12px}.demo-chat-input{border-top:1px solid var(--line);padding:10px 14px}.demo-chat-input p{color:var(--text-dim);font-size:11px}.demo-chat-input p.typing-now:after{content:"|";animation:.9s step-end infinite caret}.steps{grid-template-columns:repeat(3,1fr);gap:18px;width:100%;max-width:1200px;margin:0 auto;padding:40px 48px 80px;display:grid}.step-card{background:var(--surface);border:1px solid var(--line);border-radius:20px;padding:28px;transition:transform .3s cubic-bezier(.2,.8,.2,1),border-color .3s,background .45s;animation:.8s cubic-bezier(.2,.8,.2,1) both rise}.step-card:hover{border-color:var(--line-strong);transform:translateY(-4px)}.step-n{color:var(--text-dim);letter-spacing:.15em;font-family:JetBrains Mono,monospace;font-size:12px}.step-card h3{letter-spacing:-.01em;margin:14px 0 10px;font-size:18px;font-weight:500}.step-card p{color:var(--text-dim);font-size:14px;line-height:1.6}.gen{text-align:center;width:100%;max-width:1200px;margin:0 auto;padding:20px 48px 90px}.section-title{letter-spacing:-.02em;margin-bottom:10px;font-size:clamp(26px,3.4vw,40px);font-weight:300}.section-sub{color:var(--text-dim);margin-bottom:40px;font-size:15px}.gen-grid{grid-template-columns:repeat(4,1fr);gap:18px;display:grid}.gen-card{background:var(--surface);border:1px solid var(--line);text-align:left;border-radius:20px;padding:26px 22px;transition:transform .3s cubic-bezier(.2,.8,.2,1),border-color .3s,background .45s;animation:.8s cubic-bezier(.2,.8,.2,1) both rise}.gen-card:hover{border-color:var(--line-strong);transform:translateY(-4px)}.gen-icon{border:1px solid var(--line-strong);border-radius:12px;place-items:center;width:40px;height:40px;margin-bottom:16px;display:inline-grid}.gen-icon svg{fill:none;stroke:currentColor;stroke-width:1.6px;stroke-linecap:round;stroke-linejoin:round;width:18px;height:18px}.gen-card h3{letter-spacing:-.01em;margin-bottom:8px;font-size:16px;font-weight:500}.gen-card p{color:var(--text-dim);font-size:13px;line-height:1.6}.cta-final{text-align:center;padding:40px 48px 100px}.cta-final h2{letter-spacing:-.02em;margin-bottom:12px;font-size:clamp(26px,3.4vw,40px);font-weight:300}.cta-final p{color:var(--text-dim);margin-bottom:30px;font-size:15px}.landing-footer{border-top:1px solid var(--line);color:var(--text-dim);letter-spacing:.08em;justify-content:center;align-items:center;gap:10px;padding:26px;font-size:12px;display:flex}.auth{flex:1;place-items:center;display:grid;position:relative}.modal-overlay{z-index:50;background:color-mix(in srgb, var(--bg) 55%, transparent);-webkit-backdrop-filter:blur(10px);place-items:center;animation:.25s both fade-in;display:grid;position:fixed;inset:0}.modal-overlay.closing{animation:.22s both fade-out}.modal-card{animation:.35s cubic-bezier(.2,.9,.3,1.15) both modal-in;position:relative}.modal-overlay.closing .modal-card{animation:.22s both modal-out}.modal-close{width:30px;height:30px;color:var(--text-dim);border-radius:50%;place-items:center;font-size:18px;transition:color .2s,background .2s;display:grid;position:absolute;top:14px;right:16px}.modal-close:hover{color:var(--text);background:var(--surface-2)}.input-mismatch{box-shadow:0 0 0 1.5px #e5484d55!important}.auth-card{background:var(--surface);border:1px solid var(--line);width:360px;box-shadow:var(--shadow);border-radius:24px;padding:28px;transition:background .45s,border-color .45s;animation:.7s cubic-bezier(.2,.8,.2,1) both rise;position:relative}.auth-tabs{background:var(--surface-2);border-radius:999px;gap:4px;margin-bottom:22px;padding:4px;display:flex}.auth-tabs button{color:var(--text-dim);border-radius:999px;flex:1;padding:9px 0;font-size:13px;font-weight:500;transition:color .25s,background .25s}.auth-tabs button.active{background:var(--accent);color:var(--accent-text)}.auth-form{flex-direction:column;gap:12px;display:flex}.auth-form input{background:var(--surface-2);color:var(--text);border:none;border-radius:14px;outline:none;padding:13px 18px;font-family:inherit;font-size:14px;transition:box-shadow .25s,background .45s}.auth-form input::placeholder{color:var(--text-dim)}.auth-form input:focus{box-shadow:0 0 0 1.5px var(--line-strong)}.auth-error{color:#e5484d;font-size:13px;animation:.3s both msg-in}.auth-submit{justify-content:center;margin-top:6px;animation:none}.auth-submit:disabled{opacity:.6;cursor:default}.home{flex:1;place-items:center;display:grid;position:relative}.home-3d{animation:1.2s both fade-in;position:absolute;inset:0}.three-mount{width:100%;height:100%}.home-content{text-align:center;pointer-events:none;position:relative}.home-eyebrow{letter-spacing:.34em;text-transform:uppercase;color:var(--text-dim);margin-bottom:20px;font-size:12px;animation:.8s cubic-bezier(.2,.8,.2,1) .1s both rise}.home-title{letter-spacing:-.03em;margin-bottom:40px;font-size:clamp(38px,6vw,68px);font-weight:300;line-height:1.08;animation:.8s cubic-bezier(.2,.8,.2,1) .22s both rise}.btn-primary{pointer-events:auto;background:var(--accent);color:var(--accent-text);letter-spacing:.01em;box-shadow:var(--shadow);border-radius:999px;align-items:center;gap:12px;padding:15px 30px;font-size:15px;font-weight:500;transition:transform .3s cubic-bezier(.2,.8,.2,1),box-shadow .3s,background .45s,color .45s;animation:.8s cubic-bezier(.2,.8,.2,1) .34s both rise;display:inline-flex}.btn-primary:hover{transform:translateY(-2px)scale(1.02)}.btn-primary:active{transform:translateY(0)scale(.98)}.btn-arrow{transition:transform .3s cubic-bezier(.2,.8,.2,1)}.btn-primary:hover .btn-arrow{transform:translate(4px)}.project-grid{pointer-events:auto;flex-wrap:wrap;justify-content:center;gap:14px;max-width:720px;margin-top:38px;display:flex}.project-card{background:var(--surface);border:1px solid var(--line);text-align:left;border-radius:18px;flex-direction:column;justify-content:flex-end;align-items:flex-start;width:168px;height:108px;padding:14px 16px;transition:transform .28s cubic-bezier(.2,.8,.2,1),border-color .28s,box-shadow .28s,background .45s;animation:.7s cubic-bezier(.2,.8,.2,1) both rise;display:flex;position:relative;overflow:hidden}.project-card:hover{border-color:var(--line-strong);box-shadow:var(--shadow);transform:translateY(-4px)scale(1.02)}.project-card-bg{object-fit:cover;width:100%;height:100%;transition:transform .4s cubic-bezier(.2,.8,.2,1);position:absolute;inset:0}.project-card:hover .project-card-bg{transform:scale(1.06)}.project-card-scrim{opacity:0;background:linear-gradient(#0a0a0c0f 40%,#0a0a0cb8);transition:opacity .3s;position:absolute;inset:0}.project-card.has-cover .project-card-scrim{opacity:1}.project-card-name,.project-card-date{z-index:1;position:relative}.project-card-name{letter-spacing:-.01em;text-overflow:ellipsis;white-space:nowrap;max-width:100%;font-size:13px;font-weight:600;overflow:hidden}.project-card.has-cover .project-card-name,.project-card.has-cover .project-card-date{color:#fff}.project-card-date{color:var(--text-dim);margin-top:2px;font-size:11px}.project-card.has-cover .project-card-date{color:#ffffffb8}.project{flex:1;gap:20px;min-height:0;padding:0 28px 28px;animation:.5s both fade-in;display:flex}.workspace{flex-direction:column;flex:1;gap:16px;min-width:0;display:flex}.canvas,.dropzone{background:var(--surface);border:1px solid var(--line);border-radius:24px;flex:1;min-height:0;transition:background .45s,border-color .3s;overflow:hidden}.workspace.drag-over .canvas,.workspace.drag-over .dropzone{border-color:var(--line-strong);border-style:dashed}.canvas{place-items:center;padding:24px;display:grid}.canvas-img{object-fit:contain;border-radius:12px;max-width:100%;max-height:100%;animation:.5s cubic-bezier(.2,.8,.2,1) both photo-in}.dropzone{flex-direction:column;justify-content:center;align-items:center;gap:4px;display:flex}.dropzone-3d{width:220px;height:220px;margin-bottom:8px}.dropzone-title{letter-spacing:-.01em;font-size:17px;font-weight:500}.dropzone-sub{color:var(--text-dim);font-size:13px}.filmstrip{scrollbar-width:none;align-items:center;gap:10px;min-height:64px;padding-bottom:2px;display:flex;overflow-x:auto}.filmstrip::-webkit-scrollbar{display:none}.thumb{flex:none;animation:.4s cubic-bezier(.2,.8,.2,1) both thumb-in;position:relative}.thumb-img{opacity:.55;border:2px solid #0000;border-radius:14px;width:60px;height:60px;padding:0;transition:opacity .25s,border-color .25s,transform .25s cubic-bezier(.2,.8,.2,1);display:block;overflow:hidden}.thumb-img img{object-fit:cover;width:100%;height:100%;display:block}.thumb:hover .thumb-img{opacity:.85;transform:translateY(-2px)}.thumb.active .thumb-img{opacity:1;border-color:var(--text)}.thumb-num{background:var(--accent);min-width:18px;height:18px;color:var(--accent-text);pointer-events:none;border-radius:999px;place-items:center;padding:0 4px;font-size:10px;font-weight:600;display:grid;position:absolute;bottom:-4px;left:-4px}.thumb-remove{background:var(--accent);width:20px;height:20px;color:var(--accent-text);opacity:0;border-radius:50%;place-items:center;font-size:13px;line-height:1;transition:opacity .2s,transform .2s cubic-bezier(.3,1.3,.4,1);display:grid;position:absolute;top:-6px;right:-6px;transform:scale(.6)}.thumb:hover .thumb-remove{opacity:1;transform:scale(1)}.thumb.add{border:1px dashed var(--line-strong);width:60px;height:60px;color:var(--text-dim);border-radius:14px;place-items:center;transition:color .25s,border-color .25s,transform .25s;display:grid}.thumb.add:hover{color:var(--text);border-color:var(--text);transform:translateY(-2px)}.chat{background:var(--surface);border:1px solid var(--line);border-radius:24px;flex-direction:column;flex:0 0 360px;width:360px;transition:background .45s,border-color .45s;display:flex;overflow:hidden}.chat-head{border-bottom:1px solid var(--line);align-items:center;gap:9px;padding:18px 22px;display:flex}.chat-dot{background:#34c77b;border-radius:50%;width:8px;height:8px;animation:2.4s infinite pulse}.chat-title{letter-spacing:.06em;text-transform:uppercase;color:var(--text-dim);font-size:13px;font-weight:500}.chat-scroll{scrollbar-width:thin;flex-direction:column;flex:1;gap:12px;padding:22px;display:flex;overflow-y:auto}.msg{border-radius:18px;max-width:85%;padding:12px 16px;font-size:14px;line-height:1.55;animation:.45s cubic-bezier(.2,.8,.2,1) both msg-in}.msg.agent{background:var(--surface-2);border:1px solid var(--line);border-bottom-left-radius:6px;align-self:flex-start}.msg.user{background:var(--accent);color:var(--accent-text);border-bottom-right-radius:6px;align-self:flex-end}.msg.typing{gap:5px;padding:16px;display:flex}.msg.typing span{background:var(--text-dim);border-radius:50%;width:6px;height:6px;animation:1.2s infinite bounce}.msg.typing span:nth-child(2){animation-delay:.15s}.msg.typing span:nth-child(3){animation-delay:.3s}.chat-input{border-top:1px solid var(--line);align-items:center;gap:10px;padding:14px;display:flex}.chat-input input{background:var(--surface-2);color:var(--text);border:none;border-radius:999px;outline:none;flex:1;padding:12px 16px;font-family:inherit;font-size:14px;transition:background .45s,box-shadow .25s}.chat-input input::placeholder{color:var(--text-dim)}.chat-input input:focus{box-shadow:0 0 0 1.5px var(--line-strong)}.send-btn{background:var(--accent);width:40px;height:40px;color:var(--accent-text);border-radius:50%;flex:none;place-items:center;transition:transform .25s cubic-bezier(.3,1.3,.4,1),opacity .25s,background .45s,color .45s;display:grid}.send-btn:disabled{opacity:.35;cursor:default}.send-btn:not(:disabled):hover{transform:scale(1.08)}.topbar-center{align-items:center;gap:10px;display:flex}.back-btn{border:1px solid var(--line);width:32px;height:32px;color:var(--text-dim);border-radius:50%;place-items:center;transition:color .25s,border-color .25s,transform .25s;display:grid}.back-btn:hover{color:var(--text);border-color:var(--line-strong);transform:translate(-2px)}.credits-badge{cursor:pointer;transition:transform .25s cubic-bezier(.3,1.3,.4,1)}.credits-badge:hover{transform:scale(1.06)}.billing{flex:1;width:100%;max-width:860px;margin:0 auto;padding:10px 28px 40px;overflow-y:auto}.billing-head{background:var(--surface);border:1px solid var(--line);border-radius:20px;justify-content:space-between;align-items:center;margin-bottom:26px;padding:22px 26px;animation:.5s cubic-bezier(.2,.8,.2,1) both rise;display:flex}.billing-plan-label{letter-spacing:.1em;text-transform:uppercase;color:var(--text-dim);font-size:11px}.billing-plan{margin-top:4px;font-size:22px;font-weight:500}.billing-expires{color:var(--text-dim);font-size:13px;font-weight:400}.billing-credits{text-align:right}.billing-section-title{letter-spacing:.06em;text-transform:uppercase;color:var(--text-dim);margin:24px 0 14px;font-size:15px;font-weight:500}.billing-grid{grid-template-columns:repeat(3,1fr);gap:14px;display:grid}.billing-grid:has(>:nth-child(2):last-child){grid-template-columns:repeat(2,1fr)}.billing-card{background:var(--surface);border:1px solid var(--line);border-radius:18px;flex-direction:column;gap:6px;padding:22px;transition:transform .28s cubic-bezier(.2,.8,.2,1),border-color .28s;animation:.5s cubic-bezier(.2,.8,.2,1) both rise;display:flex}.billing-card:hover{border-color:var(--line-strong);transform:translateY(-3px)}.billing-card.active{border-color:var(--text)}.billing-card h3{font-size:16px;font-weight:600}.billing-price{letter-spacing:-.02em;font-size:24px;font-weight:500}.billing-price span{color:var(--text-dim);font-size:13px;font-weight:400}.billing-note{color:var(--text-dim);flex:1;font-size:12.5px}.billing-buy{box-shadow:none;justify-content:center;margin-top:12px;padding:11px 0;font-size:14px;animation:none}.billing-buy:disabled{opacity:.5;cursor:default;transform:none}.billing-legal{color:var(--text-dim);margin-top:28px;font-size:12.5px;line-height:1.6}.billing-legal a{color:var(--text)}.pay-stub{text-align:center}.pay-stub-badge{letter-spacing:.08em;text-transform:uppercase;color:var(--text-dim);border:1px dashed var(--line-strong);border-radius:999px;margin-bottom:16px;padding:5px 12px;font-size:11px;display:inline-block}.pay-stub-title{font-size:18px;font-weight:600}.pay-stub-amount{letter-spacing:-.02em;margin:8px 0;font-size:32px;font-weight:500}.pay-stub-note{color:var(--text-dim);margin-bottom:18px;font-size:13px}.pay-cancel{text-align:center;width:100%;margin-top:10px;padding:12px 0;font-size:14px}.consent-row{color:var(--text-dim);cursor:pointer;align-items:flex-start;gap:10px;font-size:12.5px;line-height:1.5;display:flex}.consent-row input{accent-color:var(--text);margin-top:2px}.consent-row a{color:var(--text)}.legal{max-width:720px;margin:0 auto;padding:20px 28px 80px;font-size:14.5px;line-height:1.7}.legal h1{letter-spacing:-.02em;margin-bottom:6px;font-size:28px;font-weight:500}.legal-date{color:var(--text-dim);margin-bottom:26px;font-size:13px}.legal h2{margin:26px 0 8px;font-size:17px;font-weight:600}.legal p{color:color-mix(in srgb, var(--text) 82%, var(--text-dim))}.landing-footer a{color:var(--text-dim);text-decoration:none;transition:color .2s}.landing-footer a:hover{color:var(--text)}.cookie-bar{z-index:55;background:var(--surface);border:1px solid var(--line);box-shadow:var(--shadow);color:var(--text-dim);border-radius:999px;align-items:center;gap:16px;max-width:calc(100vw - 40px);padding:12px 20px;font-size:13px;animation:.5s cubic-bezier(.2,.8,.2,1) .8s both rise;display:flex;position:fixed;bottom:20px;left:50%;transform:translate(-50%)}.cookie-bar a{color:var(--text)}.cookie-ok{background:var(--accent);color:var(--accent-text);border-radius:999px;flex:none;padding:8px 16px;font-size:12px;font-weight:600;transition:transform .25s cubic-bezier(.3,1.3,.4,1)}.cookie-ok:hover{transform:scale(1.05)}.verify-banner{background:var(--surface);border:1px dashed var(--line-strong);color:var(--text-dim);border-radius:14px;justify-content:center;align-items:center;gap:14px;margin:0 28px 14px;padding:11px 18px;font-size:13px;animation:.5s cubic-bezier(.2,.8,.2,1) both rise;display:flex}.verify-resend{background:var(--accent);color:var(--accent-text);border-radius:999px;flex:none;padding:7px 14px;font-size:12px;font-weight:600;transition:transform .25s cubic-bezier(.3,1.3,.4,1)}.verify-resend:hover{transform:scale(1.04)}.credits-badge{background:var(--accent);color:var(--accent-text);letter-spacing:.03em;border-radius:999px;padding:6px 12px;font-size:12px;font-weight:600}.notice{z-index:60;background:var(--accent);color:var(--accent-text);box-shadow:var(--shadow);border-radius:999px;padding:12px 22px;font-size:14px;animation:.4s cubic-bezier(.2,.8,.2,1) both rise;position:fixed;bottom:28px;left:50%;transform:translate(-50%)}.admin{flex-direction:column;flex:1;gap:18px;min-height:0;padding:0 28px 28px;display:flex;overflow-y:auto}.admin-login .auth-card{width:320px}.admin-title{letter-spacing:.12em;text-transform:uppercase;color:var(--text-dim);font-size:15px;font-weight:600}.admin-login .admin-title{text-align:center;margin-bottom:20px}.admin-head{justify-content:space-between;align-items:center;display:flex}.admin-stats{grid-template-columns:repeat(5,1fr);gap:14px;display:grid}.stat-card{background:var(--surface);border:1px solid var(--line);border-radius:18px;flex-direction:column;gap:8px;padding:18px 20px;animation:.5s cubic-bezier(.2,.8,.2,1) both rise;display:flex}.stat-label{letter-spacing:.1em;text-transform:uppercase;color:var(--text-dim);font-size:11px}.stat-value{letter-spacing:-.02em;font-size:22px;font-weight:500}.stat-value.pos{color:#34c77b}.stat-value.neg{color:#e5484d}.admin-table-wrap{background:var(--surface);border:1px solid var(--line);border-radius:18px;overflow:auto}.admin-table{border-collapse:collapse;white-space:nowrap;width:100%;font-size:13px}.admin-table th{text-align:left;letter-spacing:.08em;text-transform:uppercase;color:var(--text-dim);border-bottom:1px solid var(--line);background:var(--surface);padding:14px 16px;font-size:11px;font-weight:500;position:sticky;top:0}.admin-table td{border-bottom:1px solid var(--line);vertical-align:middle;padding:12px 16px}.admin-table tbody tr:last-child td{border-bottom:none}.admin-table tbody tr{transition:background .15s}.admin-table tbody tr:hover{background:var(--surface-2)}.admin-table .req{text-overflow:ellipsis;max-width:260px;overflow:hidden}.admin-table .dim{color:var(--text-dim)}.admin-table .empty{text-align:center;padding:40px}.admin-table .mono{font-family:JetBrains Mono,monospace;font-size:11.5px}.admin-table .pos{color:#34c77b}.admin-table .neg{color:#e5484d}.trx-thumb{object-fit:cover;border-radius:8px;width:42px;height:42px;display:block}@keyframes fade-in{0%{opacity:0}to{opacity:1}}@keyframes rise{0%{opacity:0;transform:translateY(18px)}to{opacity:1;transform:translateY(0)}}@keyframes msg-in{0%{opacity:0;transform:translateY(10px)scale(.97)}to{opacity:1;transform:translateY(0)scale(1)}}@keyframes photo-in{0%{opacity:0;transform:scale(.96)}to{opacity:1;transform:scale(1)}}@keyframes thumb-in{0%{opacity:0;transform:translateY(8px)scale(.8)}to{opacity:1;transform:translateY(0)scale(1)}}@keyframes pulse{0%,to{opacity:1}50%{opacity:.4}}@keyframes bounce{0%,to{transform:translateY(0)}40%{transform:translateY(-4px)}}@keyframes fade-out{0%{opacity:1}to{opacity:0}}@keyframes modal-in{0%{opacity:0;transform:translateY(24px)scale(.94)}to{opacity:1;transform:translateY(0)scale(1)}}@keyframes modal-out{0%{opacity:1;transform:translateY(0)scale(1)}to{opacity:0;transform:translateY(12px)scale(.97)}}@keyframes star-twinkle{0%,to{opacity:1}50%{opacity:.35}}@keyframes caret{0%,to{opacity:0}50%{opacity:1}}@media (width<=1000px){.hero-inner{grid-template-columns:1fr;gap:36px}.steps{grid-template-columns:1fr;padding:20px 28px 60px}.hero{padding:20px 28px 60px}.gen-grid{grid-template-columns:repeat(2,1fr)}.gen{padding:20px 28px 60px}}@media (width<=900px){.project{flex-direction:column}.chat{flex:0 0 320px;width:auto}}
