:root{--bg:#eef2f7;--paper:#e2e9f3;--surface:#d8e1ee;--text:#1a2436;--muted:#7a8a9e;--muted-strong:#7a8a9e;--line:#c1ccdc;--primary:#e87a3a;--primary-strong:#d66c30;--button-text:#fff;--warning:#8c5e3c;--thriving:#4a6fa5;--stable:#4a6fa5;--stressed:#8c5e3c;--overwhelmed:#a65a42;--focus:#3a5f96;--shadow:0 4px 12px #1c2f2814;--radius:14px;--font-body:"Atkinson Hyperlegible", "Segoe UI", Tahoma, sans-serif;--font-display:"Atkinson Hyperlegible", "Segoe UI", Tahoma, sans-serif}*{box-sizing:border-box}html,body,#root{min-height:100%}body{font-family:var(--font-body);color:var(--text);background:radial-gradient(circle at 12% 18%,#e87a3a6b 0%,#e87a3a00 48%) 0 0/140% 140%,radial-gradient(circle at 35% 45%,#ffb95f47 0%,#ffb95f00 45%) 0 0/140% 140%,radial-gradient(circle at 84% 22%,#4a6fa561 0%,#4a6fa500 52%) 0 0/140% 140%,radial-gradient(circle at 50% 82%,#448cbe42 0%,#448cbe00 50%) 0 0/140% 140%,linear-gradient(145deg,#cfe4ff 0%,#aad4ff 45%,#8bc6ff 100%) 0 0/100% 100%;margin:0;animation:24s ease-in-out infinite alternate landingGlowDrift}body,.app-shell,.card,.capability-pill,.capability-portrait-shell,.configure-preview,.add-square-button,.companion-avatar,.companion-bubble,.companion-bubble:before,.pet-option,.pet-option.selected,input,select,.assignment-card,.button-primary,.button-subtle,button,.site-home-link,.skip-link{transition:background-color .26s,background .36s,color .26s,border-color .26s,box-shadow .26s}body:has(.dashboard){position:relative;overflow-x:hidden}body:has(.dashboard) .app-shell{z-index:1;position:relative}body:has(.dark-mode){color:var(--text);background:radial-gradient(circle at 12% 18%,#e89a3a38 0%,#e89a3a00 48%),radial-gradient(circle at 84% 22%,#6a9ec242 0%,#6a9ec200 52%),radial-gradient(circle at 50% 82%,#a0785033 0%,#a0785000 50%),linear-gradient(145deg,#1c1e2a 0%,#202333 52%,#191c28 100%)}body:has(.dark-mode .dashboard){color:var(--text)}a{color:inherit}.app-shell{max-width:1420px;min-height:100vh;margin:0 auto;padding:.75rem}.site-home-link{border:1px solid var(--line);background:var(--paper);width:3.4rem;height:3.4rem;color:var(--text);box-shadow:var(--shadow);z-index:25;border-radius:999px;place-items:center;display:grid;position:fixed;top:1rem;left:1rem}.site-home-link svg{width:1.6rem;height:1.6rem}.skip-link{background:var(--paper);border:2px solid var(--focus);z-index:20;border-radius:8px;padding:.4rem .7rem;position:absolute;top:.25rem;left:.25rem;transform:translateY(-120%)}.skip-link:focus-visible{transform:translateY(0)}.eyebrow{color:var(--muted);letter-spacing:.02em;text-transform:uppercase;margin:0;font-size:1rem;font-weight:600}h1,h2,h3,h4{font-family:var(--font-display);margin:0}h1{margin-top:.4rem;font-size:clamp(1.5rem,2vw,2.2rem);font-weight:700}h2{font-size:clamp(1.25rem,1.7vw,1.75rem);font-weight:700}h3{font-size:1.12rem;font-weight:700}p{margin:0}main{margin-top:3.5rem}.landing{grid-template-columns:1fr;place-items:center;min-height:calc(100vh - 190px);display:grid}.card{background:var(--paper);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);padding:1.05rem}.landing-copy{text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:.85rem;max-width:56rem;padding:0;display:flex}.landing-copy h1{font-size:clamp(3rem,9vw,5.8rem);line-height:.95}.landing-copy>p{color:#546b7e;max-width:54ch;margin-top:.7rem}.landing-panel{text-align:center}.cta-row{flex-wrap:wrap;justify-content:center;gap:.7rem;margin-top:1rem;display:flex}.landing .cta-row .button-primary{padding:.82rem 1.35rem;font-size:1.08rem;font-weight:700}.landing-capabilities{gap:1rem;width:min(980px,100%);margin-top:1.6rem;display:grid}.landing-capabilities h2{text-align:center;font-size:clamp(1.05rem,2vw,1.45rem)}.capability-pills{grid-template-columns:repeat(3,minmax(0,1fr));align-items:start;gap:2.1rem;display:grid}.capability-pill{border:1px solid var(--line);--capsule-offset-y:0px;background:linear-gradient(#f2f6fb 0%,#e2e9f3 100%);border-radius:999px;grid-template-rows:auto auto 1fr;align-content:start;place-items:start center;gap:.2rem;width:100%;min-height:28.5rem;padding:1.6rem 1rem 1.8rem;animation:7.5s ease-in-out infinite capsuleFloat;display:grid;position:relative}.capability-pill:nth-child(odd){--capsule-offset-y:-.85rem;justify-self:stretch}.capability-pill:nth-child(2n){--capsule-offset-y:.85rem;justify-self:stretch}.capability-pill:nth-child(2){animation-delay:.8s}.capability-pill:nth-child(3){animation-delay:1.6s}.capability-portrait-shell{aspect-ratio:1;background:radial-gradient(circle at 30% 30%,#fdfefe 0%,#edf2f9 62%,#dbe4f1 100%);border:1px solid #b9c6d8;border-radius:50%;place-items:center;width:clamp(156px,14.8vw,214px);margin-top:.15rem;display:grid;box-shadow:0 10px 26px #1b31291f}.capability-portrait{font-size:clamp(4rem,8vw,6.2rem);line-height:1}.capability-title{text-align:center;margin:.8rem 0 0;font-size:clamp(.96rem,1.55vw,1.15rem)}.capability-pill p{text-align:center;max-width:24ch;color:var(--muted);overflow-wrap:anywhere;margin:2.7rem 0 0;padding:0 .45rem;font-size:.93rem;line-height:1.45}@keyframes capsuleFloat{0%,to{transform:translateY(var(--capsule-offset-y))}50%{transform:translateY(calc(var(--capsule-offset-y) - 6px))}}.button-primary,.button-subtle,button,select,input{font:inherit}.button-primary,button{border:1px solid var(--primary);background:var(--primary);color:var(--button-text);cursor:pointer;border-radius:9px;padding:.5rem .8rem;text-decoration:none;transition:background-color .12s ease-in-out}.button-primary:hover,button:hover{background:var(--primary-strong)}.button-subtle{border:1px solid var(--line);background:var(--paper);color:var(--text);text-align:center;border-radius:9px;padding:.5rem .8rem;font-weight:600;text-decoration:none}button.button-subtle{border:1px solid var(--line);background:var(--paper);color:var(--text)}.button-subtle:hover,button.button-subtle:hover{background:#e9eff8;border-color:#aab9cf}.landing-panel ul{color:var(--muted);text-align:left;max-width:32rem;margin:.75rem auto 0;padding-left:1.2rem}.landing-panel li+li{margin-top:.45rem}.configure-page{place-items:center;min-height:calc(100vh - 5.5rem);padding:1rem;display:grid}.configure-layout{grid-template-columns:minmax(0,1fr) minmax(360px,1.15fr);align-items:center;gap:1rem;display:grid}.configure-copy{align-content:center;gap:1rem;min-height:100%;display:grid}.configure-copy h1{margin-top:.15rem;font-size:clamp(2.2rem,5vw,4.3rem)}.configure-description{color:var(--muted);max-width:34rem;font-size:1.05rem}.configure-preview{text-align:center;border:1px solid var(--line);background:#eef3fa;border-radius:18px;justify-items:center;gap:1rem;padding:1rem;display:grid}.configure-avatar{width:clamp(220px,28vw,360px);box-shadow:inset 0 0 0 10px #fff6}.configure-preview .companion-face{font-size:clamp(5rem,10vw,8rem)}.configure-preview-copy h2{font-size:clamp(1.5rem,2.4vw,2rem)}.configure-card{padding:1.35rem;display:grid}.configure-card-header{gap:.3rem;display:grid}.configure-card h2{font-size:clamp(1.4rem,2.4vw,2rem)}.configure-card p{color:var(--muted)}.configure-form{grid-template-rows:1fr auto;gap:.95rem;height:100%;display:grid}.configure-fields{align-content:start;gap:.95rem;display:grid}.configure-form label,.configure-form legend{font-size:1rem}.configure-form input,.configure-form select{padding:.8rem .9rem;font-size:1.04rem}.configure-form .pet-picker{padding:.9rem}.configure-form .pet-option{padding:.8rem}.configure-form .pet-option-preview{font-size:3.2rem}.configure-form .pet-option-label{font-size:1rem}.dashboard{border-radius:var(--radius);grid-template-rows:auto 1fr 1fr;gap:0;min-height:calc(100vh - 5.5rem);display:grid;overflow:hidden}.dashboard-header{justify-content:space-between;align-items:center;padding:1rem;display:flex}.icon-trigger{z-index:25;width:3.4rem;height:3.4rem;box-shadow:var(--shadow);border-radius:999px;place-items:center;padding:0;display:grid;position:fixed;top:1rem;right:1rem}.icon-trigger svg{width:1.55rem;height:1.55rem}.dashboard-top{grid-template-columns:minmax(120px,.3fr) minmax(0,1.7fr);align-items:start;gap:1rem;padding:0 1rem 1rem;display:grid}.stats-card{grid-template-rows:auto 1fr;gap:.8rem;height:clamp(24rem,42vh,32rem);padding:.9rem;display:grid}.stats-list{grid-template-rows:repeat(3,1fr);align-self:stretch;gap:.7rem;margin:0;padding:0;list-style:none;display:grid}.stats-list li{border:1px solid var(--line);background:var(--surface);border-radius:10px;align-content:center;gap:.2rem;padding:.55rem .6rem;display:grid}.stats-list li[data-stat-type=completed]{background:#dff2e8;border-color:#b8e6d5}.stats-list li[data-stat-type=duetoday]{background:#fdebd8;border-color:#ffd699}.stats-list li[data-stat-type=duelater]{background:#dce9f5;border-color:#aab9cf}.stat-label{color:var(--muted);font-size:.9rem}.stat-value{color:var(--text);font-size:1.3rem;line-height:1.1}.dashboard-bottom{grid-template-columns:minmax(120px,.3fr) minmax(0,1.7fr);align-items:start;gap:1rem;padding:1rem;display:grid}.add-trigger-card{height:clamp(24rem,42vh,32rem);padding:.8rem;display:grid}.add-square-button{border:1px solid var(--primary);background:var(--primary);border-radius:12px;place-items:center;width:100%;height:100%;display:grid;position:relative}.add-square-button:hover{background:var(--primary-strong);border-color:var(--primary-strong);animation:1.05s ease-in-out infinite addTilePulse}.add-plus{color:var(--button-text);will-change:transform;font-size:clamp(2.2rem,5vw,3rem);font-weight:500;line-height:1;display:inline-block}.add-square-button:hover .add-plus{animation:1.05s ease-in-out infinite plusHoverPulse}.companion-card{text-align:center;align-content:center;justify-items:center;gap:.9rem;height:clamp(24rem,42vh,32rem);display:grid}.companion-title-row{justify-content:flex-start;align-items:center;gap:.6rem;width:100%;margin-bottom:.8rem;display:flex}.companion-title-row h3{font-size:clamp(1.35rem,2vw,1.9rem);font-weight:700}.pet-name-highlight{color:var(--primary)}.companion-message-col{align-content:center;justify-items:start;gap:.55rem;max-width:min(520px,100%);display:grid}.companion-content{justify-content:center;align-items:center;gap:1rem;width:100%;max-width:min(700px,100%);display:flex}.companion-name-edit{border:1px solid var(--line);background:var(--paper);width:2.8rem;height:2.8rem;color:var(--muted);border-radius:999px;place-items:center;padding:0;display:grid}button.companion-name-edit:hover{background:#e8eef8;border-color:#aebcd2}.companion-name-edit svg{width:1.3rem;height:1.3rem}.companion-state{margin-bottom:.3rem;font-weight:700}.companion-state.thriving{color:var(--thriving)}.companion-state.neutral{color:var(--stable)}.companion-state.stressed{color:var(--stressed)}.companion-state.overwhelmed{color:var(--overwhelmed)}.companion-avatar{aspect-ratio:1;border:1px solid var(--line);background:#edf2f9;border-radius:50%;flex:none;place-content:center;width:clamp(200px,30vh,320px);display:grid}.companion-bubble{border:1px solid var(--line);text-align:left;will-change:transform;background:#f1f5fb;border-radius:16px;max-width:min(520px,100%);padding:.8rem 1rem;animation:5s ease-in-out infinite bubbleFloat;position:relative}.companion-bubble:before{content:"";border-left:1px solid var(--line);border-bottom:1px solid var(--line);background:#f1f5fb;width:18px;height:18px;position:absolute;top:50%;left:-12px;transform:translateY(-50%)rotate(45deg)}.companion-face{letter-spacing:.02em;color:var(--muted);white-space:nowrap;text-overflow:clip;font-size:clamp(2rem,7vh,3.5rem);line-height:1;animation:10s ease-in-out infinite breathe;display:block;overflow:hidden}.companion-face[data-emoji-count="2"]{font-size:clamp(3.2rem,10vh,5rem)}.companion-face[data-emoji-count="4"],.companion-face[data-emoji-count="3"]{font-size:clamp(1.8rem,6vh,3rem)}.pet-picker{border:1px solid var(--line);border-radius:12px;margin:.45rem 0 0;padding:.7rem}.pet-picker legend{color:var(--text);padding:0 .3rem;font-weight:700}.pet-options{grid-template-columns:repeat(3,minmax(0,1fr));gap:.5rem;display:grid}.pet-option{border:1px solid var(--line);color:var(--text);background:#f0f5fb;border-radius:10px;place-items:center;gap:.3rem;padding:.55rem;transition:transform .2s,box-shadow .2s;display:grid}.pet-option:hover{transform:translateY(-5px);box-shadow:0 8px 20px #1b315124}.pet-option.selected{border-color:var(--primary);background:#e3ebf7}.pet-option-preview{font-size:2.6rem;line-height:1}.pet-option-label{font-size:.92rem;font-weight:600}.settings-row{grid-template-columns:1fr auto;align-items:center;gap:.8rem;margin-top:.65rem;display:grid}.assignment-form{gap:.55rem;margin-top:.8rem;display:grid}input,select{border:1px solid var(--line);color:var(--text);background:#f7f9fc;border-radius:9px;padding:.5rem .65rem}.form-actions{grid-template-columns:1fr 1fr;gap:.6rem;margin-top:.55rem;display:grid}.filter-row{flex-wrap:wrap;align-items:center;gap:.6rem;display:flex}.assignments-header-row{justify-content:space-between;align-items:flex-start;gap:1rem;display:flex}.assignments-header-row .filter-row{justify-content:flex-end;margin-top:0}.assignments-header-row .filter-row label{font-size:.92rem}.assignment-list{grid-template-columns:repeat(2,minmax(0,1fr));align-content:start;gap:.7rem;margin:1rem 0 0;padding:0;list-style:none;display:grid}.assignment-card{border:1px solid var(--line);background:#f0f5fb;border-radius:12px;flex-direction:column;gap:.7rem;min-height:12.5rem;padding:.8rem;display:flex}.assignment-main{justify-items:start;gap:.22rem;display:grid}.assignment-main p{color:var(--muted);font-size:.96rem}.assignment-actions{flex-flow:wrap;gap:.45rem;min-width:0;margin-top:auto;display:flex}.assignments-section{flex-direction:column;height:clamp(24rem,42vh,32rem);display:flex;overflow:hidden}.assignments-scroll-area{flex:1;margin-top:.25rem;padding-right:.2rem;overflow-y:auto}.workload{border:1.5px solid;border-radius:999px;padding:.18em .65em;font-size:.82rem;font-weight:700}.workload.light{color:#4a6fa5;background:#4a6fa51a;border-color:#4a6fa559}.workload.moderate{color:#5e82b6;background:#5e82b61a;border-color:#5e82b659}.workload.heavy{color:#8c5e3c;background:#8c5e3c1a;border-color:#8c5e3c59}.workload.overwhelming{color:#a65a42;background:#a65a421a;border-color:#a65a4259}.overdue{color:var(--warning);font-weight:700}.empty-state{color:var(--muted);margin-top:.9rem;font-style:italic}.modal-overlay{z-index:30;background:#0000007a;place-items:center;padding:1rem;animation:.22s ease-out overlayFadeIn;display:grid;position:fixed;inset:0}.modal-card{background:var(--paper);border:1px solid var(--line);border-radius:var(--radius);width:min(620px,100%);box-shadow:var(--shadow);padding:1.8rem 2rem;animation:.26s cubic-bezier(.2,.8,.2,1) modalRiseIn}.modal-header{justify-content:space-between;align-items:center;gap:.7rem;margin-bottom:.5rem;display:flex}:focus-visible{outline:3px solid var(--focus);outline-offset:2px}.large{font-size:1.08rem}.x-large{font-size:1.16rem}.dark-mode{--bg:#1c1e2a;--paper:#272318;--surface:#272318;--text:#f2ebe0;--muted:#b29b84;--muted-strong:#d7c2ad;--line:#5a4c39;--primary:#e89a3a;--primary-strong:#d8892f;--button-text:#1c1e2a;--warning:#a07850;--thriving:#6a9ec2;--stable:#6a9ec2;--stressed:#a07850;--overwhelmed:#b98757;--focus:#6a9ec2;--shadow:0 6px 16px #00000059}.dark-mode .capability-pill{background:linear-gradient(#2d2833 0%,#272318 100%)}.dark-mode .stats-list li{background:#2f2920}.dark-mode .stats-list li[data-stat-type=completed]{background:#1f2d23;border-color:#3d5a45}.dark-mode .stats-list li[data-stat-type=duetoday]{background:#2d2620;border-color:#5a4a2f}.dark-mode .stats-list li[data-stat-type=duelater]{background:#1f2530;border-color:#3a4556}.dark-mode .stat-label{color:var(--muted-strong)}.dark-mode .stat-value{color:#f2ebe0}.dark-mode .modal-card{background:#2c2720;border-color:#6a5a44}.dark-mode .modal-card h3,.dark-mode .modal-card label,.dark-mode .modal-card legend,.dark-mode .modal-card strong{color:#f2ebe0}.dark-mode .modal-card p{color:var(--muted-strong)}.dark-mode .pet-picker legend,.dark-mode h1,.dark-mode h2,.dark-mode h3,.dark-mode h4{color:#f2ebe0}.dark-mode .landing-copy>p,.dark-mode .landing-panel ul,.dark-mode .capability-pill p,.dark-mode .configure-description,.dark-mode .configure-card p,.dark-mode .assignment-main p,.dark-mode .empty-state{color:var(--muted-strong)}.dark-mode .filter-row label,.dark-mode .settings-row label,.dark-mode .assignment-form label{color:#f2ebe0}.dark-mode .eyebrow,.dark-mode .companion-face{color:var(--muted-strong)}.dark-mode input::placeholder{color:var(--muted-strong);opacity:1}.dark-mode .capability-portrait-shell{background:radial-gradient(circle at 30% 30%,#3a3327 0%,#2c271d 62%,#272318 100%);border-color:#544734}.dark-mode .button-subtle:hover,.dark-mode button.button-subtle:hover{background:#342d23;border-color:#5a4a36}.dark-mode .configure-preview{background:#2d2833}.dark-mode .add-square-button:hover{background:var(--primary-strong);border-color:var(--primary-strong)}.dark-mode button.companion-name-edit:hover{background:#342d23;border-color:#5f4f3a}.dark-mode .companion-avatar{background:#2b2631}.dark-mode .companion-bubble,.dark-mode .companion-bubble:before{background:#2f2920}.dark-mode .companion-bubble p{color:#f2ebe0}.dark-mode .pet-option{background:#2c272f}.dark-mode .pet-option.selected{background:#332a1f}.dark-mode input,.dark-mode select{background:#221f29}.dark-mode .assignment-card{background:#2c272f}.dark-mode .workload.light{color:#6a9ec2;background:#6a9ec226;border-color:#6a9ec266}.dark-mode .workload.moderate{color:#83b1d0;background:#83b1d026;border-color:#83b1d066}.dark-mode .workload.heavy{color:#a07850;background:#a0785026;border-color:#a0785066}.dark-mode .workload.overwhelming{color:#b98757;background:#b9875726;border-color:#b9875766}.high-contrast{--bg:#fff;--paper:#fff;--surface:#f2f2f2;--text:#111;--muted:#222;--muted-strong:#111;--line:#111;--primary:#000;--primary-strong:#000;--button-text:#fff;--focus:#000}.dark-mode.high-contrast{--bg:#000;--paper:#0d0d0d;--surface:#1a1a1a;--text:#fff;--muted:#e0e0e0;--muted-strong:#fff;--line:#fff;--primary:#fc0;--primary-strong:#ffd740;--button-text:#000;--focus:#fc0;--warning:#ffb347;--thriving:#7ecfff;--stable:#7ecfff;--stressed:#ffb347;--overwhelmed:#ff8080}.reduced-motion *{scroll-behavior:auto!important;transition-duration:.001ms!important;animation-duration:.001ms!important;animation-iteration-count:1!important}@media (prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition-duration:.001ms!important;animation-duration:.001ms!important;animation-iteration-count:1!important}}@keyframes bubbleFloat{0%,to{transform:translateY(0)}50%{transform:translateY(-5px)}}@keyframes breathe{0%,to{transform:translateY(0)}50%{transform:translateY(-1px)}}@keyframes plusHoverPulse{0%,to{opacity:.96;transform:scale(1)}50%{opacity:1;transform:scale(1.2)}}@keyframes addTilePulse{0%,to{transform:scale(1)}50%{transform:scale(1.025)}}@keyframes pageRise{0%{opacity:0;transform:translateY(18px)}to{opacity:1;transform:translateY(0)}}.page-transition{animation:.32s cubic-bezier(.2,.8,.2,1) pageRise}@keyframes overlayFadeIn{0%{opacity:0}to{opacity:1}}@keyframes modalRiseIn{0%{opacity:0;transform:translateY(10px)scale(.992)}to{opacity:1;transform:translateY(0)scale(1)}}@keyframes landingGlowDrift{0%{background-position:0 0,100% 0,50% 100%,0 0}to{background-position:12% 10%,88% 12%,44% 90%,0 0}}@keyframes assignmentPopUp{0%{opacity:0;transform:scale(.85)translateY(12px)}70%{opacity:1;transform:scale(1.02)}to{opacity:1;transform:scale(1)translateY(0)}}.assignment-card.new-assignment{animation:.5s cubic-bezier(.34,1.2,.64,1) assignmentPopUp}@media (width<=900px){.landing,.dashboard-top,.dashboard-bottom,.assignment-card{grid-template-columns:1fr}.landing{justify-items:center}.landing-copy{text-align:center;align-items:center;max-width:52rem}.cta-row{justify-content:center}.landing-capabilities h2{text-align:center}.configure-layout{grid-template-columns:1fr}.configure-page{min-height:auto}.assignments-header-row{flex-direction:column}.assignments-header-row .filter-row{justify-content:flex-start}.dashboard{grid-template-rows:auto auto auto;min-height:auto}.assignment-actions{flex-flow:wrap;min-width:0}.assignment-list,.capability-pills{grid-template-columns:1fr}.capability-pill{border-radius:28px;grid-template-columns:auto;justify-self:stretch;gap:.8rem;width:100%;min-height:0;padding:1rem;transform:none}.capability-pill:nth-child(2n){grid-template-columns:auto}.capability-portrait-shell{width:clamp(132px,32vw,190px)}.companion-card{text-align:center;justify-items:center;gap:.7rem}.companion-content{flex-direction:column;width:100%}.companion-message-col{justify-items:center;width:100%}.companion-title-row{justify-content:center}.companion-bubble{text-align:center}.companion-bubble:before{top:-10px;left:50%;transform:translate(-50%)rotate(135deg)}}
