@import"https://fonts.googleapis.com/css2?family=Fraunces:ital,opsz,wght@0,9..144,500;0,9..144,600;0,9..144,700;1,9..144,500&family=Inter:wght@400;500;600;700&display=swap";:root{--cream: #faf2e4;--cream-2: #f1e4ce;--paper: #fffcf6;--ink: #2c2318;--ink-soft: #7a6a55;--tomato: #d6472c;--tomato-dark: #a93521;--tomato-tint: #fbe2d8;--herb: #556b47;--herb-tint: #e4ebdd;--honey: #de9c3d;--danger: #c63b2a;--line: rgba(44, 35, 24, .12);--shadow: 0 10px 30px rgba(44, 35, 24, .09);--radius-lg: 22px;--radius-md: 14px;--dock-bar-top: #fffdf8;--dock-bar-bot: #f4e9d6;--dock-rim-hi: rgba(255, 255, 255, .95);--dock-icon: #9c8a72;--font-display: "Fraunces", serif;--font-body: "Inter", sans-serif}*{box-sizing:border-box}html{overflow-x:hidden}body{margin:0;background:var(--cream);color:var(--ink);font-family:var(--font-body);overflow-x:hidden;max-width:100vw}h1,h2,h3{font-family:var(--font-display);margin:0}.page{max-width:1100px;margin:0 auto;padding:28px 24px 60px}.scroll-backdrop{position:fixed;top:-30%;right:-30%;bottom:-30%;left:-30%;z-index:-1;pointer-events:none;filter:blur(18px);will-change:transform;background:radial-gradient(circle at 22% 28%,rgba(214,71,44,.36) 0%,transparent 42%),radial-gradient(circle at 80% 20%,rgba(222,156,61,.36) 0%,transparent 40%),radial-gradient(circle at 55% 82%,rgba(85,107,71,.3) 0%,transparent 46%),radial-gradient(circle at 12% 78%,rgba(222,156,61,.26) 0%,transparent 44%)}.navbar{position:sticky;top:0;z-index:20;background:linear-gradient(180deg,var(--cream) 62%,rgba(250,242,228,0));display:flex;align-items:center;gap:20px;padding:34px 24px 20px;max-width:100vw}.navbar .brand{display:flex;align-items:center;gap:9px;font-family:var(--font-display);font-weight:600;flex:1 1 0;min-width:0;white-space:nowrap}.navbar .brand em{color:var(--tomato);font-style:normal}.seal{width:32px;height:32px;border-radius:50%;background:var(--tomato);color:#fff;display:flex;align-items:center;justify-content:center;font-size:15px}.brand-logo{height:46px;width:auto;display:block}.hero-banner{position:relative;overflow:hidden;border-radius:var(--radius-lg);padding:36px 40px;margin-bottom:28px;display:flex;align-items:center;gap:32px;background:var(--paper);box-shadow:var(--shadow)}.hero-banner:before{content:"";position:absolute;top:-20%;right:-20%;bottom:-20%;left:-20%;background:radial-gradient(circle at 20% 30%,var(--tomato) 0%,transparent 42%),radial-gradient(circle at 82% 18%,var(--honey) 0%,transparent 40%),radial-gradient(circle at 50% 85%,var(--herb) 0%,transparent 46%);opacity:.5;background-size:160% 160%;animation:heroFlow 16s ease-in-out infinite alternate}@keyframes heroFlow{0%{background-position:0% 0%}50%{background-position:100% 60%}to{background-position:40% 100%}}.hero-banner>*{position:relative;z-index:1}.hero-banner .hero-logo{width:340px;flex-shrink:0;filter:drop-shadow(0 10px 22px rgba(44,35,24,.22))}.hero-content{flex:1;min-width:0;display:flex;flex-direction:column;gap:12px}.hero-banner p{color:var(--ink-soft);font-size:14.5px;margin:0}.hero-banner .search-pill{display:flex;align-items:center;gap:10px;background:var(--paper);border-radius:100px;padding:6px 8px 6px 18px;box-shadow:var(--shadow);width:100%;max-width:440px}.hero-banner .search-pill input{border:none;background:transparent;flex:1;font-family:var(--font-body);font-size:14px;color:var(--ink);outline:none}.navbar .user-pill .btn{padding:8px 14px}.navbar .user-pill{display:flex;align-items:center;gap:10px;font-size:13px;color:var(--ink-soft);flex:1 1 0;min-width:0;justify-content:flex-end}.dock{position:relative;flex:0 1 620px;height:84px;filter:drop-shadow(0 16px 34px rgba(44,35,24,.15))}.dock__skin{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;display:block;overflow:visible}.dock__halo{position:absolute;left:0;top:0;width:170px;height:170px;margin:-85px 0 0 -85px;border-radius:50%;pointer-events:none;opacity:.55;filter:blur(6px);background:radial-gradient(circle,rgba(214,71,44,.32) 0%,transparent 58%)}.dock__bead{position:absolute;left:0;top:0;width:56px;height:56px;border-radius:50%;display:grid;place-items:center;pointer-events:none;background:radial-gradient(circle at 34% 28%,#ee6f4d,#bf3a20 78%);box-shadow:0 0 0 5px #d6472c29,0 10px 22px #d6472c73,inset 0 -3px 8px #00000040,inset 0 3px 7px #ffffff73}.dock__bead-icon{grid-area:1 / 1;display:grid;color:#fff9f2;opacity:0;transform:scale(.55) rotate(-18deg);transition:opacity .22s ease,transform .34s cubic-bezier(.34,1.56,.64,1)}.dock__bead-icon.is-on{opacity:1;transform:none;transition-delay:.1s}.dock__bead svg,.dock__tab svg{width:23px;height:23px}.dock__tabs{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:flex-end;padding:0 56px}.dock__tab{flex:1;min-width:0;padding:0 0 13px;text-decoration:none;display:flex;flex-direction:column;align-items:center;gap:3px;color:var(--dock-icon);transition:color .3s ease}.dock__tab:hover{color:var(--ink)}.dock__tab.is-active{color:var(--tomato)}.dock__tab svg{transition:opacity .25s ease,transform .35s cubic-bezier(.34,1.56,.64,1)}.dock__tab.is-active svg{opacity:0;transform:translateY(-14px) scale(.5)}.dock__tab b{font-size:10.5px;font-weight:700;letter-spacing:.04em;white-space:nowrap;opacity:0;transform:translateY(6px);transition:opacity .3s ease,transform .3s cubic-bezier(.22,1,.36,1)}.dock__tab.is-active b{opacity:1;transform:none;transition-delay:.08s}@media (prefers-reduced-motion: reduce){.dock__bead-icon,.dock__tab svg,.dock__tab b{transition-duration:.01ms}}.btn{display:inline-flex;align-items:center;gap:8px;padding:11px 18px;border-radius:100px;border:1px solid var(--line);background:var(--paper);font-weight:700;font-size:13.5px;cursor:pointer;color:var(--ink);text-decoration:none}.btn.primary{background:var(--tomato);color:#fff;border-color:var(--tomato)}.btn.danger{color:var(--danger);border-color:#c63b2a59}.btn.danger.solid{background:var(--danger);color:#fff;border-color:var(--danger)}.btn:disabled{opacity:.55;cursor:not-allowed}.card{background:var(--paper);border:1px solid var(--line);border-radius:var(--radius-lg);box-shadow:var(--shadow)}.recipe-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:18px;margin-top:20px}.recipe-card{background:var(--paper);border:1px solid var(--line);border-radius:var(--radius-md);overflow:hidden;cursor:pointer;transition:transform .15s ease}.recipe-card:hover{transform:translateY(-3px)}.recipe-card .photo{aspect-ratio:4/3;position:relative}.recipe-card .photo .icon{position:absolute;right:10%;bottom:8%;font-size:30px;opacity:.5}.recipe-card .body{padding:13px 14px 15px}.recipe-card .eyebrow{font-size:10.5px;letter-spacing:.1em;text-transform:uppercase;color:var(--herb);font-weight:700}.recipe-card .title{font-family:var(--font-display);font-size:16px;font-weight:600;margin:4px 0 6px}.recipe-card .meta{display:flex;gap:10px;font-size:12px;color:var(--ink-soft);flex-wrap:wrap}.diet-badges{position:absolute;bottom:8px;left:8px;display:flex;gap:4px;flex-wrap:wrap}.diet-badge{background:#1c160eb3;color:#fff;font-size:10px;font-weight:700;padding:3px 7px;border-radius:100px}.form-field{display:flex;flex-direction:column;gap:6px;margin-bottom:14px}.form-field label{font-size:12.5px;font-weight:700;color:var(--ink-soft)}.form-field input,.form-field select,.form-field textarea{font-family:var(--font-body);font-size:15px;padding:11px 13px;border-radius:10px;border:1px solid var(--line);background:var(--cream);color:var(--ink);width:100%}.form-row{display:flex;gap:14px;flex-wrap:wrap}.form-row .form-field{flex:1;min-width:140px}.chip{padding:7px 14px;border-radius:100px;border:1px solid var(--line);background:var(--paper);font-size:12.5px;font-weight:600;color:var(--ink-soft);cursor:pointer}.chip.active{background:var(--herb);color:#fff;border-color:var(--herb)}.chip-row{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:10px}.stepper{display:flex;align-items:center;gap:12px;background:var(--cream-2);border-radius:100px;padding:6px;width:fit-content}.stepper button{width:28px;height:28px;border-radius:50%;border:none;background:var(--herb);color:#fff;font-weight:700;cursor:pointer}.ing-table{width:100%;border-collapse:collapse;margin-top:8px}.ing-table td{padding:8px 0;border-bottom:1px dashed var(--line);font-size:14px}.ing-table td:last-child{text-align:right;font-variant-numeric:tabular-nums;color:var(--tomato-dark);font-weight:600}.step-item{display:flex;gap:14px;margin-bottom:22px}.step-num{flex:0 0 auto;width:32px;height:32px;border-radius:50%;background:var(--tomato);color:#fff;display:flex;align-items:center;justify-content:center;font-family:var(--font-display);font-weight:600}.center-page{min-height:70vh;display:flex;align-items:center;justify-content:center;padding:20px}.alert{background:var(--tomato-tint);color:var(--tomato-dark);padding:12px 16px;border-radius:10px;font-size:13.5px;margin-bottom:16px}.empty-state{text-align:center;color:var(--ink-soft);padding:60px 0}.dropzone{border:2px dashed var(--line);border-radius:var(--radius-md);padding:26px 20px;text-align:center;background:var(--paper);cursor:pointer}.row-actions{display:flex;gap:10px;flex-wrap:wrap;margin:18px 0}.section-title{font-size:16px;font-weight:600;margin:26px 0 12px}.recipe-detail-grid{display:grid;grid-template-columns:280px 1fr;gap:36px}.meal-plan-scroll{overflow-x:auto;-webkit-overflow-scrolling:touch;margin-top:20px}.meal-plan-grid{display:grid;grid-template-columns:repeat(7,minmax(130px,1fr));gap:10px;min-width:780px}@media (max-width: 640px){.page{padding:18px 14px 112px}.navbar{padding:10px 14px;gap:8px;background:var(--paper);border-bottom:1px solid var(--line)}.navbar .brand-text,.navbar .user-pill .user-name,.navbar .user-pill .btn-label{display:none}.dock{position:fixed;left:12px;right:12px;bottom:12px;top:auto;flex:none;height:70px;z-index:40}.dock__tabs{padding:0 28px}.dock__tab{padding-bottom:10px}.dock__tab b{font-size:9.5px}.dock__bead svg,.dock__tab svg{width:21px;height:21px}.dock__halo{width:130px;height:130px;margin:-65px 0 0 -65px;opacity:.45}.scroll-backdrop{filter:blur(12px)}.hero-banner{padding:30px 20px;flex-direction:column;text-align:center}.hero-banner .hero-logo{width:200px}.hero-content{align-items:center}.hero-banner .search-pill{max-width:100%}.recipe-grid{grid-template-columns:1fr}.recipe-detail-grid{grid-template-columns:1fr;gap:22px}.ingredients-box{position:static}.meal-plan-grid{min-width:640px}h1{font-size:22px!important}}.login-screen{position:relative;min-height:100vh;display:flex;align-items:center;justify-content:center;padding:24px;overflow:hidden}.login-bg{position:fixed;top:0;right:0;bottom:0;left:0;z-index:0;pointer-events:none;overflow:hidden}.login-sky{position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(180deg,#0d1410,#16201a 18%,#2a2116,#4a2c17 62%,#8a4a22 80%,#c9762f 93%,#e2a24a)}.login-sun{position:absolute;left:50%;bottom:26%;width:90vmax;height:60vmax;margin-left:-45vmax;background:radial-gradient(ellipse at 50% 100%,rgba(222,156,61,.55) 0%,rgba(214,71,44,.28) 38%,transparent 70%);filter:blur(20px);animation:loginSun 14s ease-in-out infinite alternate}@keyframes loginSun{0%{opacity:.85;transform:scale(1)}to{opacity:1;transform:scale(1.06)}}.login-clouds{position:absolute;left:0;right:0;top:4%;height:46%;background-image:radial-gradient(ellipse 22% 42% at 18% 40%,rgba(255,236,205,.2),transparent 70%),radial-gradient(ellipse 16% 30% at 52% 62%,rgba(255,236,205,.14),transparent 72%),radial-gradient(ellipse 26% 36% at 82% 30%,rgba(255,236,205,.16),transparent 70%);background-size:1100px 100%;background-repeat:repeat-x;filter:blur(14px);animation:loginCloudDrift 110s linear infinite}@keyframes loginCloudDrift{to{background-position-x:1100px}}.login-layer{position:absolute;left:0;bottom:0;width:100%;height:62%;display:block}.login-layer--far{height:58%}.login-layer--far path{fill:#2e2015}.login-layer--mid{height:50%}.login-layer--mid path{fill:#1f1710}.login-layer--trees{height:40%}.login-layer--trees path{fill:#120d08}.login-mist{position:absolute;left:0;right:0;background-repeat:repeat-x;pointer-events:none}.login-mist--back{bottom:20%;height:26%;background-image:radial-gradient(ellipse 30% 60% at 20% 55%,rgba(255,250,240,.3),transparent 72%),radial-gradient(ellipse 22% 46% at 62% 45%,rgba(255,250,240,.22),transparent 74%);background-size:900px 100%;filter:blur(16px);animation:loginMistBack 90s linear infinite}.login-mist--front{bottom:0;height:30%;background-image:radial-gradient(ellipse 34% 58% at 30% 60%,rgba(255,250,240,.38),transparent 70%),radial-gradient(ellipse 26% 44% at 74% 48%,rgba(255,250,240,.28),transparent 72%);background-size:700px 100%;filter:blur(20px);animation:loginMistFront 62s linear infinite reverse}@keyframes loginMistBack{to{background-position-x:900px}}@keyframes loginMistFront{to{background-position-x:700px}}.login-panel{position:relative;z-index:1;width:min(360px,88vw);animation:loginPanelIn .8s cubic-bezier(.22,1,.36,1) both}@keyframes loginPanelIn{0%{opacity:0;transform:translateY(18px)}to{opacity:1;transform:none}}.login-brand{text-align:center;margin-bottom:34px}.login-brand__badge{display:inline-grid;place-items:center;width:96px;height:96px;border-radius:24px;background:#fffcf6ed;border:1px solid rgba(255,255,255,.6);box-shadow:0 16px 40px #00000073}.login-brand__badge img{width:88px;height:auto;display:block}.login-brand__name{display:block;margin-top:16px;font-family:var(--font-display);font-weight:600;font-size:13px;letter-spacing:.3em;text-transform:uppercase;color:#fff9f0eb;text-shadow:0 2px 12px rgba(0,0,0,.5)}.login-field{display:flex;align-items:center;gap:12px;padding:0 16px;margin-bottom:10px;height:52px;border-radius:12px;background:#fffcf629;border:1px solid rgba(255,255,255,.22);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);transition:background .25s ease,border-color .25s ease}.login-field:focus-within{background:#fffcf642;border-color:#ffffff73}.login-field svg{width:20px;height:20px;flex:none;color:#fff9f0bf}.login-field input{flex:1;min-width:0;background:none;border:none;outline:none;font-family:var(--font-body);font-size:14.5px;color:#fff9f0;border-left:1px solid rgba(255,255,255,.22);padding-left:12px;height:24px}.login-field input::placeholder{color:#fff9f099}.login-field input:-webkit-autofill,.login-field input:-webkit-autofill:focus{-webkit-text-fill-color:#fff9f0;transition:background-color 9999s ease-in-out 0s}.login-submit{width:100%;height:52px;margin-top:14px;border:none;border-radius:12px;cursor:pointer;background:#fffcf6f0;color:var(--ink);font-family:var(--font-body);font-weight:700;font-size:14px;letter-spacing:.04em;box-shadow:0 14px 32px #00000061;transition:transform .2s ease,background .2s ease}.login-submit:hover:not(:disabled){background:#fff;transform:translateY(-1px)}.login-submit:disabled{opacity:.6;cursor:not-allowed}.login-hint{text-align:center;font-size:12.5px;margin-top:18px;color:#fff9f0b3;text-shadow:0 1px 8px rgba(0,0,0,.5)}.login-hint a{color:#fff9f0;font-weight:700;text-decoration:none}.login-hint a:hover{text-decoration:underline}.login-alert{background:#c63b2ad1;color:#fff;font-size:13.5px;font-weight:600;padding:12px 16px;border-radius:12px;margin-bottom:14px;border:1px solid rgba(255,255,255,.22)}.login-screen~.scroll-backdrop{display:none}@media (prefers-reduced-motion: reduce){.login-sun,.login-clouds,.login-mist,.login-panel{animation:none}}.print-only{display:none}@media print{@page{size:A4 portrait;margin:15mm 14mm 18mm}.navbar,.dock,.scroll-backdrop,.no-print,.row-actions,.hero-banner,.alert{display:none!important}.print-only{display:block}html,body{background:#fff!important;color:#000!important;font-size:11pt}body{overflow:visible!important}.page{max-width:none!important;margin:0!important;padding:0!important}.card,.ingredients-box,.recipe-sheet__tips{background:#fff!important;box-shadow:none!important;border:1px solid #bbb!important;border-radius:4px!important}a{color:#000!important;text-decoration:none!important}.recipe-sheet p,.recipe-sheet td,.recipe-sheet span,.recipe-sheet h4{color:#000!important}.recipe-sheet__letterhead{font-family:var(--font-display);font-size:9pt;letter-spacing:.18em;text-transform:uppercase;color:#555;border-bottom:1px solid #ccc;padding-bottom:4mm;margin-bottom:6mm}.recipe-sheet h1{font-size:22pt!important;margin:0 0 3mm!important;break-after:avoid;page-break-after:avoid}.recipe-sheet__cover{max-height:55mm!important;border-radius:4px!important;margin:0 0 5mm!important;break-inside:avoid;page-break-inside:avoid}.chip,.chip.active{background:none!important;color:#000!important;border:none!important;padding:0!important;font-size:9.5pt!important;font-weight:600}.chip-row{gap:0!important}.chip:not(:last-child):after{content:" · ";color:#888}.recipe-sheet__meta{gap:8mm!important;margin:4mm 0 6mm!important}.recipe-sheet__meta .card{border:none!important;padding:0!important}.recipe-detail-grid{display:block!important}.ingredients-box{margin-bottom:7mm;break-inside:avoid;page-break-inside:avoid}.recipe-sheet__servings{font-weight:700;font-size:10.5pt;margin:0 0 3mm}.ing-table{column-count:2;column-gap:9mm;display:block;width:100%}.ing-table tbody{display:block}.ing-table tr{display:block;padding:1.2mm 0;border-bottom:1px dotted #ccc;break-inside:avoid;page-break-inside:avoid}.ing-table td{display:inline;border:none!important;padding:0!important;color:#000!important}.ing-table td:last-child{float:right;font-weight:700}.recipe-sheet__steps-title{break-after:avoid;page-break-after:avoid}.step-item{break-inside:avoid;page-break-inside:avoid;margin-bottom:5mm}.step-num{background:none!important;color:#000!important;border:1.2pt solid #000!important;width:8mm!important;height:8mm!important}.step-item p{color:#000!important;font-size:11pt!important}.recipe-sheet__tips{break-inside:avoid;page-break-inside:avoid;margin-top:6mm!important}.recipe-sheet:after{content:"Les Recettes de Dodo";display:block;margin-top:8mm;padding-top:3mm;border-top:1px solid #ddd;font-size:8pt;color:#777;text-align:center}*,*:before,*:after{animation:none!important;transition:none!important}}.carousel{margin:0 0 28px}.carousel__stage{position:relative;height:255px;perspective:1000px;overflow:hidden}.carousel__card{position:absolute;top:50%;left:50%;width:168px;height:168px;margin:-84px 0 0 -84px;padding:0;border:none;border-radius:18px;overflow:hidden;cursor:pointer;background-size:cover;background-position:center;box-shadow:0 6px 20px #2c231829;transition:transform .8s cubic-bezier(.22,1,.36,1),opacity .8s ease,filter .8s ease}.carousel__card img{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;object-fit:cover;display:block}.carousel__card b{position:absolute;left:0;right:0;bottom:0;padding:18px 8px 8px;font-family:var(--font-body);font-size:13px;font-weight:700;line-height:1.25;color:#fff;text-align:center;background:linear-gradient(180deg,transparent,rgba(28,22,14,.82));opacity:0;transition:opacity .45s ease}.carousel__card.is-front b{opacity:1}.carousel__card.is-front{box-shadow:0 12px 30px #2c231847}.carousel__card:focus-visible{outline:2px solid var(--tomato);outline-offset:3px}.carousel__bar{height:2px;width:min(280px,60%);margin:12px auto 0;background:var(--cream-2);border-radius:2px;overflow:hidden}.carousel__bar span{display:block;height:100%;width:0;background:var(--tomato);border-radius:2px}@media (prefers-reduced-motion: reduce){.carousel__card{transition:none}.carousel__bar{display:none}}@media (max-width: 640px){.carousel__stage{height:200px}.carousel__card{width:132px;height:132px;margin:-66px 0 0 -66px}}.dropzone.is-dragging{border-color:var(--tomato);border-style:solid;background:var(--tomato-tint)}.assistant-shell{max-width:860px;margin:0 auto;display:flex;gap:0;padding:0;overflow:hidden;min-height:560px}.assistant-side{flex:0 0 230px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;padding:24px 18px;border-right:1px solid var(--line);background:linear-gradient(180deg,var(--cream) 0%,var(--paper) 70%)}.assistant-chat{flex:1;min-width:0;display:flex;flex-direction:column}.assistant-thread{flex:1;overflow-y:auto;padding:22px;display:flex;flex-direction:column;gap:14px}.assistant-form{display:flex;gap:8px;padding:16px;border-top:1px solid var(--line)}.assistant-form input{flex:1}.bubble{max-width:78%;padding:11px 15px;border-radius:14px;font-size:14px;line-height:1.5}.bubble.is-mine{margin-left:auto;background:var(--tomato);color:#fff}.bubble.is-dodo{background:var(--cream-2);color:var(--ink)}.assistant-hit{display:flex;align-items:center;gap:10px;border:1px solid var(--line);border-radius:10px;padding:8px;text-decoration:none;color:var(--ink);background:var(--paper)}.assistant-hit:hover{border-color:var(--tomato)}.assistant-hit-thumb{width:40px;height:40px;border-radius:8px;flex:0 0 auto}.dodo-avatar{position:relative;border-radius:50%;background:radial-gradient(circle at 50% 32%,#fff,var(--cream-2));box-shadow:0 10px 26px #2c231821;display:grid;place-items:center;overflow:hidden;flex:0 0 auto}.dodo-avatar svg{width:100%;height:100%;display:block}.dodo-avatar:after{content:"";position:absolute;top:-4px;right:-4px;bottom:-4px;left:-4px;border-radius:50%;border:3px solid var(--tomato);opacity:0;transform:scale(.94);pointer-events:none}.dodo-avatar.is-listening:after{animation:dodo-pulse 1.5s ease-out infinite}.dodo-avatar.is-speaking{box-shadow:0 10px 30px #d6472c47}@keyframes dodo-pulse{0%{opacity:.55;transform:scale(.96)}to{opacity:0;transform:scale(1.13)}}.dodo-head{transform-origin:100px 156px;animation:dodo-sway 6.5s ease-in-out infinite alternate}@keyframes dodo-sway{0%{transform:rotate(-1.6deg)}to{transform:rotate(1.6deg)}}.dodo-eyes{transform-origin:100px 106px;animation:dodo-blink 5.5s infinite}@keyframes dodo-blink{0%,93%,to{transform:scaleY(1)}96%{transform:scaleY(.08)}}.dodo-brows{transform-origin:100px 90px;transition:transform .25s ease}.dodo-avatar.is-listening .dodo-brows{transform:translateY(-3px)}.dodo-mouth{transform-origin:100px 128px}.dodo-avatar.is-speaking .dodo-mouth{animation:dodo-talk .32s ease-in-out infinite alternate}@keyframes dodo-talk{0%{transform:scaleY(.5)}to{transform:scaleY(1.45)}}.dodo-status{margin:0;font-size:12.5px;font-weight:600;color:var(--ink-soft);text-align:center;line-height:1.4;min-height:34px}.dodo-status.is-live{color:var(--tomato)}.mic-button{display:inline-flex;align-items:center;gap:8px;font:600 13px var(--font-body);padding:9px 16px;border-radius:100px;border:1px solid var(--line);background:var(--paper);color:var(--ink);cursor:pointer;transition:background .18s ease,color .18s ease,border-color .18s ease}.mic-button:hover{border-color:var(--tomato);color:var(--tomato)}.mic-button.is-on{background:var(--tomato);border-color:var(--tomato);color:#fff}.read-aloud{display:flex;align-items:center;gap:7px;font-size:12px;color:var(--ink-soft);cursor:pointer}.read-aloud input{width:auto;margin:0;accent-color:var(--tomato)}.voice-note{margin:0;font-size:11.5px;line-height:1.45;color:var(--ink-soft);text-align:center}.voice-note.is-error{color:var(--tomato)}@media (max-width: 720px){.assistant-shell{flex-direction:column;min-height:0}.assistant-side{flex:0 0 auto;flex-direction:row;flex-wrap:wrap;justify-content:center;border-right:none;border-bottom:1px solid var(--line);padding:16px}.assistant-thread{max-height:46vh}}@media (prefers-reduced-motion: reduce){.dodo-head,.dodo-eyes,.dodo-avatar.is-speaking .dodo-mouth,.dodo-avatar.is-listening:after{animation:none}.dodo-avatar.is-listening:after{opacity:.55;transform:scale(1)}}
