.vivarium-page{width:100%;max-width:1320px;padding:clamp(28px, 4vw, 54px) var(--gutter) clamp(64px, 8vw, 110px);margin-inline:auto}.vivarium-hero{border-bottom:1px solid var(--line-strong);grid-template-columns:minmax(0,1.45fr) minmax(220px,.55fr);align-items:end;gap:clamp(24px,5vw,80px);padding-bottom:clamp(28px,4vw,46px);display:grid}.vivarium-eyebrow{font-family:var(--font-body);color:var(--clay);margin-bottom:16px;font-size:.96rem;font-style:italic}.vivarium-hero h1{letter-spacing:-.045em;max-width:14ch;font-size:clamp(2.6rem,5.6vw,5.1rem);line-height:.96}.vivarium-lede{max-width:58ch;color:var(--ink-soft);margin-top:20px;font-size:clamp(1.02rem,1.4vw,1.16rem)}.vivarium-hero__stats{gap:10px;padding-top:10px;display:grid}.vivarium-hero__stats span{border-top:1px solid var(--line);color:var(--ink-soft);justify-content:space-between;align-items:baseline;gap:12px;padding-top:8px;font-size:.86rem;display:flex}.vivarium-hero__stats strong{font-family:var(--font-display);color:var(--ink);font-size:1.1rem}.vivarium-grid{grid-template-columns:minmax(0,1.05fr) minmax(340px,.95fr);align-items:start;gap:clamp(22px,3vw,40px);padding-top:clamp(24px,4vw,44px);display:grid}.vivarium-stage{background:radial-gradient(60% 60% at 70% 20%, #5fa0852e, transparent 70%), var(--pond-deep);border:1px solid var(--line);gap:12px;padding:clamp(14px,2.4vw,26px);display:grid;position:sticky;top:92px}.vivarium-svg{width:100%;max-height:72vh;margin-inline:auto;display:block}.vivarium-mist{animation:7s ease-in-out infinite alternate vivarium-drift}@keyframes vivarium-drift{0%{opacity:.6;transform:translateY(2px)}to{opacity:1;transform:translateY(-5px)}}.vivarium-stage__caption{color:#e9ebdd9e;font-family:var(--font-body);flex-wrap:wrap;gap:8px 16px;font-size:.78rem;font-style:italic;display:flex}.vivarium-stage__caption span+span:before{content:"·";opacity:.5;margin-right:16px}.vivarium-panel{background:var(--paper);border:1px solid var(--line-strong);position:relative;box-shadow:6px 6px #12211c14}.vivarium-panel__body{padding:clamp(20px,3vw,32px)}.vivarium-panel__top{border-bottom:1px solid var(--line-strong);justify-content:space-between;align-items:flex-start;gap:16px;padding-bottom:16px;display:flex}.vivarium-kicker{font-family:var(--font-display);letter-spacing:.1em;text-transform:uppercase;color:var(--water);margin-bottom:6px;font-size:.68rem;font-weight:600}.vivarium-panel h2{letter-spacing:-.03em;font-size:clamp(1.45rem,2.4vw,2rem);line-height:1.05}.vivarium-badge{border:1px solid var(--line-strong);min-height:26px;font-family:var(--font-display);letter-spacing:.05em;color:var(--ink-soft);background:var(--paper-warm);border-radius:1px;flex:none;align-items:center;padding:0 10px;font-size:.66rem;display:inline-flex}.vivarium-badge--good{border-color:var(--moss);color:#3e5a34;background:#7e9a5f1f}.vivarium-badge--bad{border-color:var(--clay);color:var(--clay);background:#b75c3e14}.vivarium-note{color:var(--ink-soft);margin-top:12px;font-size:.84rem;font-style:italic;line-height:1.5}.vivarium-controls{grid-template-columns:1fr 1fr;gap:12px;margin-top:20px;display:grid}.vivarium-control{color:var(--ink-soft);gap:6px;font-size:.78rem;display:grid}.vivarium-control--wide{grid-column:1/-1}.vivarium-control span{justify-content:space-between;align-items:baseline;gap:8px;display:flex}.vivarium-control em{font-family:var(--font-display);color:var(--ink);font-size:.8rem;font-style:normal}.vivarium-control select,.vivarium-control input[type=number],.vivarium-license input{border:1px solid var(--line-strong);background:var(--paper-warm);width:100%;min-height:40px;font-family:var(--font-display);color:var(--ink);border-radius:1px;padding:0 10px;font-size:.84rem}.vivarium-control input[type=range]{width:100%;accent-color:var(--water)}.vivarium-actions{flex-wrap:wrap;gap:10px;margin-top:22px;display:flex}.vivarium-actions--quiet{border-top:1px solid var(--line);justify-content:space-between;align-items:center;gap:12px;margin-top:14px;padding-top:14px}.vivarium-actions--quiet .vivarium-note{margin-top:0;font-size:.75rem}.vivarium-button{box-shadow:3px 3px 0 var(--lichen)}.vivarium-score{align-items:baseline;gap:8px;margin-top:18px;display:flex}.vivarium-score strong{font-family:var(--font-display);letter-spacing:-.06em;color:var(--pond);font-size:3.4rem;font-weight:500;line-height:.9}.vivarium-score span{color:var(--ink-soft);font-size:.8rem;font-style:italic}.vivarium-metrics{background:var(--line);border:1px solid var(--line);grid-template-columns:1fr 1fr;gap:1px;margin-top:18px;display:grid}.vivarium-metrics div{background:var(--paper-warm);color:var(--ink-soft);gap:2px;padding:10px;font-size:.78rem;display:grid}.vivarium-metrics strong{font-family:var(--font-display);color:var(--ink);font-size:.95rem}.vivarium-chart{border:1px solid var(--line);background:var(--paper-warm);margin-top:20px;padding:12px}.vivarium-chart svg{width:100%;height:auto;display:block}.vivarium-chart__legend{color:var(--ink-soft);gap:16px;margin-bottom:6px;font-size:.7rem;display:flex}.vivarium-chart__legend span{align-items:center;gap:5px;display:inline-flex}.dot{width:8px;height:2px;display:inline-block}.dot--humidity{background:var(--water)}.dot--mold{background:var(--clay)}.chart-label{font-family:var(--font-display);fill:var(--ink-soft);font-size:6px}.vivarium-chart-empty{border:1px dashed var(--line);color:var(--ink-soft);text-align:center;margin-top:20px;padding:22px;font-size:.84rem;font-style:italic}.vivarium-diagnosis,.vivarium-events{border-top:1px solid var(--line);margin-top:20px;padding-top:14px}.vivarium-diagnosis h3,.vivarium-events h3,.vivarium-blueprint-list h3,.vivarium-blueprint-shop h3{letter-spacing:.09em;text-transform:uppercase;color:var(--ink-soft);margin-bottom:8px;font-size:.7rem;font-weight:600}.vivarium-diagnosis ul,.vivarium-events ul,.vivarium-blueprint-list ul,.vivarium-blueprint-shop ul{gap:7px;margin:0;padding:0;list-style:none;display:grid}.vivarium-diagnosis li{color:var(--ink-soft);padding-left:14px;font-size:.86rem;line-height:1.45;position:relative}.vivarium-diagnosis li:before{content:"";background:var(--moss);border-radius:50%;width:5px;height:5px;position:absolute;top:.55em;left:0}.vivarium-events li{color:var(--ink-soft);gap:1px;font-size:.82rem;line-height:1.4;display:grid}.vivarium-events li span{font-family:var(--font-display);color:var(--clay);font-size:.66rem}.vivarium-events li[data-kind=good] span{color:var(--moss)}.vivarium-blueprint-summary{background:var(--line);border:1px solid var(--line);grid-template-columns:1fr 1fr;gap:1px;margin-top:18px;display:grid}.vivarium-blueprint-summary div{background:var(--paper-warm);color:var(--ink-soft);gap:2px;padding:10px;font-size:.76rem;display:grid}.vivarium-blueprint-summary strong{font-family:var(--font-display);color:var(--ink);font-size:.88rem}.vivarium-blueprint-list,.vivarium-blueprint-shop{border-top:1px solid var(--line);margin-top:20px;padding-top:14px}.vivarium-blueprint-list li,.vivarium-blueprint-shop li{color:var(--ink-soft);justify-content:space-between;align-items:baseline;gap:12px;font-size:.84rem;display:flex}.vivarium-blueprint-list li em,.vivarium-blueprint-shop li em{font-size:.76rem;font-style:italic}.vivarium-unlock{border-left:3px solid var(--water);background:#2f6e6314;margin-top:22px;padding:16px}.vivarium-license{border-top:1px solid var(--line);color:var(--ink-soft);margin-top:16px;padding-top:14px;font-size:.8rem}.vivarium-license>div{gap:8px;margin-top:8px;display:flex}.vivarium-license input{font-family:var(--font-body);flex:1}.vivarium-license details{margin-top:10px;font-size:.75rem}.vivarium-license summary{cursor:pointer;color:var(--ink-soft)}.vivarium-license code{font-family:var(--font-display);background:var(--paper-warm);padding:1px 5px;font-size:.75rem}.vivarium-message{border:1px solid var(--line-strong);background:var(--paper-warm);font-family:var(--font-display);color:var(--ink);margin:0 clamp(20px,3vw,32px) clamp(20px,3vw,32px);padding:10px 12px;font-size:.8rem}.vivarium-loading{padding:80px var(--gutter);color:var(--ink-soft);font-style:italic}@media (width<=980px){.vivarium-hero{grid-template-columns:1fr}.vivarium-hero__stats{grid-template-columns:repeat(3,1fr)}.vivarium-hero__stats span{gap:2px;display:grid}.vivarium-grid{grid-template-columns:1fr}.vivarium-stage{position:relative;top:0}.vivarium-svg{max-height:58vh}}@media (width<=560px){.vivarium-controls,.vivarium-metrics,.vivarium-blueprint-summary,.vivarium-hero__stats{grid-template-columns:1fr}.vivarium-actions .button{width:100%}.vivarium-license>div{flex-direction:column}}
