@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Lora:ital,wght@0,400;0,500;0,600;1,400;1,500&display=swap');
:root{--ink:#39483d;--muted:#7d8777;--sage:#60775c;--line:#dfe2d6;--paper:#f8f8f1;--serif:'Lora',Georgia,serif;--sans:'DM Sans',system-ui,sans-serif}
*{box-sizing:border-box}body{margin:0;background:#eef0e7;color:var(--ink);font:14px var(--sans);-webkit-font-smoothing:antialiased}button,a,textarea{-webkit-tap-highlight-color:transparent}button{font:inherit;color:inherit;cursor:pointer}button:disabled{opacity:.5;cursor:wait}button:focus-visible,a:focus-visible,textarea:focus-visible{outline:2px solid #9c7955;outline-offset:4px}button{border:0;background:none}button:hover{color:#244c31}[hidden]{display:none!important}.app{max-width:1800px;margin:auto}.topbar{height:99px;display:flex;align-items:center;padding:0 49px;gap:29px;border-bottom:1px solid #dce1d2}.wordmark{display:flex;align-items:center;gap:12px;color:#3d5140;text-decoration:none;font-family:var(--serif);font-size:45px;letter-spacing:-2px;font-weight:500}.wordmark svg{width:29px;height:38px;stroke:#708466;stroke-width:1.8;fill:#e8dfc5}.wordmark svg path+path{fill:none;stroke-width:1.2}.wordmark-dot{color:#b8956c}.tagline{font-size:12px;color:#818976;padding-top:9px;letter-spacing:.03em}.top-actions{margin-left:auto;display:flex;align-items:center;gap:22px}.clock{display:flex;align-items:center;gap:9px;font-size:12px;color:#6e7b66}.clock i,.small-dot{width:5px;height:5px;border-radius:50%;background:#a6af80;display:inline-block}.icon-button{width:29px;height:29px;border:1px solid #c9d0bd;border-radius:50%;font-family:var(--serif);font-size:15px}main{display:grid;grid-template-columns:minmax(0,1fr) 365px;min-height:740px;height:calc(100vh - 151px);max-height:1060px}.world-shell{position:relative;overflow:hidden;background:#e9ede3;min-width:0}.scene-heading{position:absolute;top:49px;left:49px;z-index:2;pointer-events:none}.eyebrow{font-size:9px;font-weight:600;letter-spacing:.18em;color:#849078}.scene-heading h1{font:400 clamp(30px,3.1vw,48px)/1.2 var(--serif);letter-spacing:-1.8px;margin:17px 0 12px;color:#485842}.scene-heading p{font-size:12px;line-height:1.9;color:#818a77}#world{position:absolute;inset:0}#world canvas{width:100%;height:100%;display:block;touch-action:none}.weather-label{position:absolute;right:31px;top:50px;display:flex;align-items:center;gap:9px;font-size:10px;color:#869074;pointer-events:none}.weather-label>span:first-child{font-size:20px;color:#b2a476}.scene-caption{position:absolute;bottom:115px;left:50%;transform:translateX(-50%);display:flex;gap:8px;align-items:center;font:italic 13px var(--serif);white-space:nowrap;color:#718264;text-shadow:0 1px #f0f2e7}.world-tools{position:absolute;bottom:53px;left:50%;transform:translateX(-50%);background:#f9faf3dd;backdrop-filter:blur(14px);border:1px solid #ffffffb3;box-shadow:0 6px 20px #6270470c;border-radius:30px;display:flex;align-items:center;padding:7px 10px;gap:5px;white-space:nowrap}.tool-button{display:flex;align-items:center;gap:9px;padding:8px 13px;font-size:21px;color:#718065}.tool-button span{font-size:10px}.tool-divider{width:1px;height:18px;background:#dfe3d4}.orbit-hint{position:absolute;bottom:24px;left:50%;transform:translateX(-50%);font-size:9px;letter-spacing:.025em;color:#8b967d;white-space:nowrap}.orbit-hint span{margin:0 7px}.notebook{background:var(--paper);border-left:1px solid #dbe1d2;display:flex;flex-direction:column;min-height:0}.tabs{height:69px;display:flex;padding:0 26px;border-bottom:1px solid #e6e8dd;gap:22px;flex-shrink:0}.tab{position:relative;padding:0 1px;font-size:11px;white-space:nowrap;color:#919783}.tab.active{color:#506448}.tab.active:after{content:'';position:absolute;bottom:-1px;height:2px;background:#798c6b;left:0;right:0}.tab span{font-size:8px;vertical-align:top;margin-left:2px}.notebook-content{padding:27px 30px 23px;overflow:auto;flex:1;scrollbar-width:thin;scrollbar-color:#d6ddca transparent}.life-label{display:flex;align-items:center;gap:7px;font-size:9px;color:#818e75}.life-label>span:first-child{width:5px;height:5px;background:#b7bb8e;border-radius:50%}.saved{margin-left:auto;font-size:8px;color:#a3aa98}.portrait{display:flex;align-items:center;justify-content:center;height:154px;margin-top:5px}.portrait svg{width:134px;height:138px}.notebook h2{font:400 25px/1.35 var(--serif);letter-spacing:-.8px;margin:12px 0;color:#4b5c43}.intro{font-size:11px;line-height:1.95;color:#929782;margin:0 0 23px}.activity{border-left:2px solid #d8dec9;padding-left:14px;margin-top:23px}.activity .eyebrow{font-size:8px}.activity>p{font:italic 14px/1.7 var(--serif);margin:8px 0 15px;color:#7f8a70}.incubation-track{height:3px;background:#e5e8d9;margin-bottom:8px;border-radius:4px;overflow:hidden}.incubation-track i{display:block;width:0;height:100%;background:#b1bc8a;transition:width 1s}.incubation>span{font-size:8px;color:#9ba18b}.primary-button{background:#647b5d;color:#fffdf1;border-radius:5px;display:flex;justify-content:space-between;align-items:center;padding:15px 17px;font-size:11px;gap:25px;transition:background .2s,transform .2s}.primary-button:hover{color:white;background:#526c4b;transform:translateY(-1px)}#begin-button{width:100%;margin-top:24px}.section-line{height:1px;background:#e4e7d9;margin:28px 0 24px}.gift-heading{display:flex;align-items:baseline;justify-content:space-between;gap:7px}h3{font-weight:500;font-size:11px;margin:0}.gift-heading>span{font-size:8px;color:#a0a58f}.gifts{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin-top:14px}.gifts button{display:flex;align-items:center;flex-direction:column;gap:9px;padding:9px 0 5px;font-size:8px;color:#8b947d;border-radius:7px;transition:background .2s}.gifts button:hover{background:#e9eddf}.gift-art{height:37px;width:39px;display:flex;align-items:center;justify-content:center;font-size:32px;filter:drop-shadow(0 3px 1px #79815b12)}.seed-art{color:#82946a;transform:rotate(-23deg)}.pebble-art{color:#b6b5a5;transform:scaleX(1.25) scaleY(.75);font-size:28px}.bell-art{color:#b89b65;font-size:38px;transform:rotate(180deg)}.pigment-art{color:#be8d7f;font-size:27px}.note-button{display:flex;align-items:center;gap:11px;border:1px solid #dfe4d4;border-radius:5px;width:100%;padding:13px 12px;margin-top:22px;font-size:10px;color:#7e8a71;text-align:left}.note-button>span:first-child{font-size:18px}.note-button>span:last-child{margin-left:auto;color:#9ba78b}.gentle-note{font:italic 10px/1.85 var(--serif);color:#a4aa95;text-align:center;margin:20px 0 5px}.notebook-footer{height:49px;border-top:1px solid #e5e8dc;display:flex;align-items:center;padding:0 25px;gap:5px;flex-shrink:0}.brain-dot{width:4px;height:4px;border-radius:50%;background:#acb792}.notebook-footer button:first-of-type{font-size:8px;color:#9ba58e}.notebook-footer button:last-child{margin-left:auto;font-size:13px;color:#89987b}.page-footer{height:52px;display:flex;align-items:center;justify-content:space-between;padding:0 49px;font-size:9px;letter-spacing:.02em;color:#959e89;border-top:1px solid #dce1d2}.page-footer>span:first-child{font:italic 11px var(--serif)}.needs{margin-top:24px;display:flex;gap:20px}.needs>div{flex:1}.needs span{font-size:8px;color:#909c81}.needs>div>div{height:3px;background:#e3e8d8;border-radius:3px;margin-top:7px}.needs i{display:block;background:#a5b38e;height:100%;border-radius:3px;transition:width 1s}.journal-entry{padding:22px 0;border-top:1px solid #e5e8dc}.journal-entry:first-child{margin-top:25px}.journal-entry time{font-size:8px;color:#a0a890;letter-spacing:.04em}.journal-entry h3{font:400 15px var(--serif);margin:9px 0;color:#6d7f60}.journal-entry p{font-size:10px;line-height:1.9;color:#8e9981;margin:8px 0}.entry-source{font-size:7px;letter-spacing:.1em;color:#a6af98;text-transform:uppercase}.subheading{font:400 16px var(--serif);margin:27px 0 15px;color:#6d7f60}.empty-state{font:italic 11px/1.9 var(--serif);color:#a1ab94;padding-bottom:12px}.body-item,.interest-item{padding:11px 0;border-bottom:1px solid #e8ebdf;font-size:10px;display:flex;align-items:center;justify-content:space-between;gap:10px}.body-item span+span{font-size:8px;color:#9fa98f}.interest-item>span{color:#809171}.interest-track{width:85px;height:3px;background:#e5e9db}.interest-track i{display:block;height:100%;background:#a5b68f}.creation-item{display:flex;gap:13px;align-items:center;padding:10px 0}.creation-thumb{width:47px;height:47px;border:1px solid #e0e4d7;background:#f0f1e6;border-radius:3px;object-fit:contain}.creation-item p{font-size:10px;margin:0 0 5px}.creation-item button{padding:0;font-size:8px;color:#819374;text-decoration:underline;text-underline-offset:3px}dialog{max-width:490px;width:calc(100% - 38px);border:1px solid #e3e6d9;border-radius:13px;padding:39px;background:#fafaf2;color:#607052;box-shadow:0 30px 100px #354a3433}dialog::backdrop{background:#4b5e4655;backdrop-filter:blur(5px)}dialog h2{font:400 29px var(--serif);letter-spacing:-1px;margin:18px 0}dialog p{font-size:12px;line-height:1.9;color:#8a957e}.close-dialog{position:absolute;right:15px;top:12px;font-size:24px;color:#8c987f}textarea{width:100%;min-height:145px;resize:vertical;margin:14px 0;padding:16px;border:1px solid #dce2cf;border-radius:5px;background:#f2f4e9;color:#5f7056;font:12px/1.8 var(--sans)}textarea::placeholder{color:#a1aa94}.form-bottom{display:flex;align-items:center;justify-content:space-between;gap:10px}.form-bottom small{font-size:8px;color:#a0a98f}.form-bottom .primary-button{padding:13px;font-size:9px;gap:0}.about-detail{border-top:1px solid #e1e5d6;margin-top:24px;padding-top:24px}.about-detail h3{font-size:12px;font-weight:600}.about-detail p{font-size:11px}.secondary-button{border:1px solid #cbd6bd;padding:13px 18px;margin-top:15px;font-size:10px;border-radius:5px}.toast{position:fixed;bottom:25px;left:50%;transform:translateX(-50%);background:#485e42;color:#f9f8ea;border-radius:8px;padding:15px 23px;font-size:12px;z-index:30;box-shadow:0 6px 30px #253a2522;max-width:90vw;line-height:1.6}.loading{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;flex-direction:column;background:#e9ede3;z-index:5;color:#87937c;transition:opacity .8s;pointer-events:none}.loading p{font:italic 14px var(--serif)}.loading-egg{width:30px;height:39px;border-radius:50% 50% 45% 45%;background:#dfd7b9;border:1px solid #c7c9a7;animation:breathe 2s infinite}.scene-error{position:absolute;left:25px;right:25px;top:45%;background:#f8f8e9e8;border:1px solid #d9dfc9;padding:24px;border-radius:8px;font-size:12px;line-height:1.8;z-index:6}.sr-only{position:absolute;width:1px;height:1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}@keyframes breathe{50%{transform:scale(1.08) rotate(4deg)}}
@media(min-height:900px){.portrait{height:180px;margin-top:15px}.notebook h2{margin-top:17px}.activity{margin-top:30px}.section-line{margin-top:33px}.gifts{margin-top:20px}.note-button{margin-top:30px}}
@media(max-width:1100px){main{grid-template-columns:minmax(0,1fr) 325px}.topbar{padding:0 30px}.notebook-content{padding:24px}.scene-heading{left:30px;top:35px}.weather-label{right:20px;font-size:9px;top:37px}.scene-heading h1{font-size:34px}.scene-heading p{font-size:11px}.tabs{padding:0 23px;gap:19px}.scene-caption{font-size:11px}.portrait{height:135px}.notebook h2{font-size:23px}.section-line{margin:22px 0}.page-footer{padding:0 30px}}
@media(max-width:760px){.topbar{height:79px;padding:0 22px;gap:16px}.wordmark{font-size:36px;gap:8px}.wordmark svg{width:24px;height:31px}.tagline{font-size:9px;max-width:90px;line-height:1.6;padding-top:4px}.top-actions{gap:13px}.clock{font-size:9px}.icon-button{height:24px;width:24px;font-size:12px}main{display:flex;flex-direction:column;height:auto;min-height:0;max-height:none}.world-shell{height:67vh;min-height:455px;max-height:670px}.scene-heading{left:26px;top:28px}.scene-heading h1{font-size:33px;margin-top:12px;letter-spacing:-1px}.scene-heading p{font-size:10px;line-height:1.8}.weather-label{top:28px;right:24px}.weather-label>span:last-child{display:none}.scene-caption{bottom:94px;font-size:10px;max-width:90%;white-space:normal;text-align:center;justify-content:center;width:90%}.world-tools{bottom:39px;padding:4px 7px}.tool-button{padding:7px 11px;font-size:19px;gap:8px}.tool-button span{font-size:9px}.orbit-hint{bottom:16px;font-size:8px}.notebook{border-left:0;border-top:1px solid #dbe1d2;min-height:590px}.tabs{height:59px;justify-content:center;gap:36px}.tab{font-size:12px}.notebook-content{padding:26px 32px;overflow:visible}.portrait{height:125px;float:left;width:104px;margin:13px 20px 10px -10px}.portrait svg{height:117px;width:110px}.notebook h2{font-size:24px;margin-top:35px}.intro{font-size:11px}.activity{clear:both;margin-top:30px}.life-label{font-size:9px}.gifts{gap:12px}.gifts button{font-size:10px}.gift-heading h3{font-size:13px}.gift-heading>span{font-size:10px}.notebook-footer{height:48px}.notebook-footer button:first-of-type{font-size:9px}.page-footer{padding:0 22px;font-size:8px;height:55px}.page-footer>span:first-child{font-size:10px}#panel-journal h2,#panel-becoming h2{margin-top:16px}.section-line{margin:25px 0}.gentle-note{font-size:11px}.note-button{font-size:11px;padding:15px}.primary-button{font-size:12px}.notebook-content:not(#panel-now){max-height:75vh;overflow:auto}.needs{clear:both}.journal-entry p{font-size:12px}.journal-entry h3{font-size:17px}.empty-state{font-size:12px}.body-item,.interest-item{font-size:12px}dialog{padding:30px}.form-bottom{align-items:flex-start;flex-direction:column;gap:10px}.form-bottom .primary-button{align-self:flex-end}}
@media(min-width:761px){main{min-height:560px}}
.watch-button{display:flex;align-items:center;gap:7px;font-size:13px;color:#6d805f;padding:9px 12px;border:1px solid #d2dac7;border-radius:20px}.watch-button span{font-size:10px}.watching .notebook{display:none}.watching main{grid-template-columns:1fr;height:calc(100dvh - 99px);max-height:none}.watching .page-footer{display:none}.watching .scene-heading{opacity:.7}.watching .world-shell{height:100%;max-height:none}.keeper-link{color:#839278;text-decoration:none;margin-left:20px;font-size:9px}.public-view .gift-heading,.public-view .gifts,.public-view .note-button,.public-view .gentle-note,.public-view #pause-button,.public-view #export-button{display:none}.public-view #incubation-label{visibility:hidden}#spectator-note h3{font:400 16px var(--serif);color:#738367}#spectator-note p{font-size:11px;line-height:1.9;color:#98a08b}.live-label{font-size:9px;color:#869878;display:flex;gap:7px;align-items:center;margin-top:17px}.live-label i{width:5px;height:5px;border-radius:50%;background:#94ae7c}@media(max-width:760px){.watch-button{padding:7px 8px;font-size:12px}.watch-button span{display:none}.top-actions{gap:9px}.watching main{height:calc(100dvh - 79px)}.keeper-link{display:block;margin:4px 0 0;text-align:right}.watching .scene-heading{pointer-events:none}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;animation:none!important;transition:none!important}}
.talk-button{display:flex;align-items:center;gap:8px;border:1px solid #c6d1bb;border-radius:20px;padding:9px 12px;color:#546e4b;font-size:10px;white-space:nowrap;background:#f5f7ef}.talk-button svg{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:1.5}.message-count{display:inline-flex;align-items:center;justify-content:center;min-width:17px;height:17px;padding:0 4px;border-radius:9px;background:#637d58;color:#fff;font-size:9px}.speech-preview{display:block;width:100%;text-align:left;padding:17px 16px;margin-top:15px;background:#edf1e4;border:1px solid #d9e1ce;border-radius:8px}.speech-preview>span:first-child{font-size:9px;font-weight:600;color:#617b54}.speech-preview blockquote{font:italic 12px/1.8 var(--serif);margin:10px 0;color:#5d7152;overflow-wrap:anywhere;white-space:pre-wrap}.speech-preview>span:last-child{font-size:8px;color:#7f8f72}.public-view .speech-preview,.public-view .talk-button{display:none}
#conversation-dialog{max-width:620px;max-height:calc(100dvh - 32px);padding:30px 30px 24px}#conversation-dialog[open]{display:flex;flex-direction:column}#conversation-dialog header{flex-shrink:0;padding-right:10px}#conversation-dialog h2{margin:13px 0 8px;font-size:28px}#conversation-dialog header p{font-size:11px;margin:0 0 20px}.conversation-thread{min-height:150px;max-height:42dvh;overflow:auto;overscroll-behavior:contain;border-block:1px solid #dfe5d5;padding:18px 3px;scrollbar-width:thin;flex:1}.conversation-empty{font:italic 14px/1.8 var(--serif);text-align:center;margin:45px 0;color:#94a185}.chat-message{max-width:90%;border:1px solid #dce4d1;border-radius:11px;padding:12px 15px;margin:0 0 14px;background:#ecf1e4}.chat-message:last-child{margin-bottom:0}.chat-message.from-keeper{margin-left:auto;background:#f3efe4;border-color:#e4decd}.chat-meta{display:flex;align-items:center;justify-content:space-between;gap:15px;font-size:9px;color:#7e8f71}.chat-meta strong{font-size:10px;font-weight:600;color:#5b734e}.chat-meta time{font-size:8px;font-weight:400;white-space:nowrap}#conversation-dialog .chat-message p{font-size:12px;line-height:1.85;color:#54654c;margin:9px 0 0;white-space:pre-wrap;overflow-wrap:anywhere}.chat-message small{display:block;color:#8d967d;font-size:8px;margin-top:8px}#conversation-dialog .conversation-status{font-size:10px;line-height:1.7;color:#7e8f70;margin:12px 0}#conversation-form{flex-shrink:0}#conversation-form label{font-size:10px;color:#718263}#conversation-text{min-height:80px;max-height:150px;resize:vertical;margin:8px 0 12px;padding:11px 13px}#conversation-form .form-bottom{flex-direction:row;align-items:center}#conversation-form .primary-button{font-size:11px;padding:12px 16px}#conversation-form .form-bottom small{font-size:9px}
@media(max-width:760px){.talk-label{display:none}.talk-button{padding:8px}.top-actions{gap:8px}.chat-message{max-width:96%;padding:12px}.chat-meta{gap:10px}.chat-meta time{font-size:7px}#conversation-dialog{width:calc(100% - 24px);padding:28px 20px 20px}#conversation-dialog h2{font-size:25px}#conversation-dialog header p{font-size:11px;margin-bottom:14px}.conversation-thread{max-height:38dvh;min-height:120px}#conversation-dialog .chat-message p{font-size:12px}#conversation-form .form-bottom small{font-size:8px}.speech-preview blockquote{font-size:13px}}
@media(max-width:520px){.tagline{display:none}.top-actions{gap:8px}.topbar{gap:10px;padding-inline:18px}.clock{font-size:8px}.talk-button{position:relative}.talk-button .message-count{position:absolute;right:-5px;top:-5px;min-width:15px;height:15px;font-size:8px}.chat-meta{align-items:baseline;flex-wrap:wrap;gap:5px 10px}#conversation-form .primary-button{font-size:10px;padding:12px}#conversation-dialog .conversation-status{font-size:10px}}
.needs .need-label{height:auto;background:none;border-radius:0;margin:0;display:flex;justify-content:space-between;align-items:center;gap:10px}.needs .need-label>span+span{font-size:8px;color:#8b987d;font-variant-numeric:tabular-nums}.needs .need-track{height:3px;background:#e3e8d8;border-radius:3px;margin-top:7px}
.tabs{gap:14px;justify-content:space-between;padding-inline:23px}.tab{font-size:10px}.needs-context{margin-top:20px;padding:13px 0 0;border-top:1px solid #e4e8d9}.needs-context h3{font-size:9px;color:#738567}.needs-context p{font-size:10px;line-height:1.8;color:#819174;margin:7px 0}.needs-context #effects-summary{font:italic 10px/1.8 var(--serif);color:#94a086}.weather-card{padding:17px;background:#edf0e5;border:1px solid #dce3d2;border-radius:7px}.weather-card h3{font:400 17px var(--serif);color:#6b805e}.weather-card p,.world-disclaimer{font-size:10px;line-height:1.85;color:#8b9980}.weather-card p{margin-bottom:0}.world-disclaimer{margin:-4px 0 18px}#notice-unread{font:9px var(--sans);color:#7d946b}.world-notice{padding:17px 0;border-top:1px solid #e2e6d9}.world-notice>div{display:flex;align-items:center;justify-content:space-between;gap:8px;font-size:8px;color:#a0a98f}.notice-read{font-size:8px;color:#859774}.notice-read.is-unread{color:#6f845e;background:#e8eddf;border-radius:10px;padding:3px 7px}.world-notice h3{font:400 15px/1.5 var(--serif);margin:11px 0 7px;color:#6b7e5d}.world-notice p,.world-event p{font-size:11px;line-height:1.85;color:#87967b;margin:0;overflow-wrap:anywhere}.world-event{border-top:1px solid #e4e8db;padding:15px 0}.world-event time{font-size:8px;color:#a0aa92}.world-event h3{font-size:11px;margin:8px 0}#panel-world h2{margin-top:16px}
@media(max-width:760px){.tabs{gap:14px;padding-inline:24px}.tab{font-size:11px}.needs-context p{font-size:11px}.world-notice p,.world-event p{font-size:12px}.world-disclaimer,.weather-card p{font-size:11px}}@media(max-width:390px){.tabs{gap:9px;padding-inline:18px}.tab{font-size:10px}}
