/* A little pool of warm light, kept behind the actual controls. */
.stage-lamp,.night-lamp{pointer-events:none;position:absolute;width:82px;height:113px;isolation:isolate}
.stage-lamp{right:9%;top:12%;opacity:.72;z-index:0}
.stage-lamp::before,.night-lamp::before{content:"";position:absolute;width:240px;height:240px;left:-80px;top:5px;z-index:-1;background:radial-gradient(ellipse,#ffcf7880 0%,#eaa65a27 39%,transparent 72%);filter:blur(9px)}
.lamp-shade{position:absolute;top:0;left:10px;width:62px;height:39px;background:linear-gradient(110deg,#d8ab79,#ffe3ad 54%,#c99869);clip-path:polygon(24% 0,76% 0,100% 88%,88% 100%,12% 100%,0 88%);border-radius:8px 8px 13px 13px;box-shadow:0 6px 20px #efbd6a88}
.lamp-stem{position:absolute;top:35px;left:39px;width:5px;height:58px;border-radius:8px;background:linear-gradient(90deg,#78564d,#d5a278,#78564d)}
.lamp-base{position:absolute;bottom:7px;left:17px;width:49px;height:11px;border-radius:50% 50% 35% 35%;background:linear-gradient(#d0a17d,#886454)}
.night-entry{display:flex;flex-direction:column;gap:3px;align-items:center;justify-content:center;position:relative;margin:18px auto 10px;padding:13px 28px;border:1px solid #e5ba9b;border-radius:22px;background:#f1c6a4;color:#302025;font:inherit;cursor:pointer;box-shadow:0 8px 24px #4b29401a}.night-entry b{font-size:16px}.night-entry span{font-size:12px;color:#674a4d}
.night-open{overflow:hidden}.night-overlay{position:fixed;inset:0;z-index:11000;display:flex;justify-content:center;align-items:center;padding:16px;background:rgba(18,17,25,.72);backdrop-filter:blur(8px);color:#352a29}
.night-dialog{position:relative;isolation:isolate;width:min(100%,620px);max-height:min(90dvh,850px);overflow:auto;box-sizing:border-box;border:1px solid #ebd9c8;border-radius:22px;background:radial-gradient(ellipse at 90% 0%,#ffedce 0,transparent 36%),#f9f3e9;padding:28px 32px;box-shadow:0 24px 80px #0006;font-family:system-ui,-apple-system,'Microsoft YaHei',sans-serif}
.night-lamp{right:30px;top:56px;transform:scale(.64);transform-origin:top right;opacity:.82;z-index:-1}.night-lamp::before{opacity:.8}
.night-dialog header{display:flex;align-items:center;justify-content:space-between;color:#806d64;font-size:12px;letter-spacing:.12em}.night-dialog header i{display:inline-block;width:3px;height:3px;margin:0 7px 3px;border-radius:50%;background:#b68c74}.night-dialog header button{display:grid;place-items:center;width:38px;height:38px;border:1px solid #d8c8b9;border-radius:50%;background:#fff8ef;color:#58463f;font-size:25px;line-height:1;cursor:pointer}
.night-dialog h2{font-family:Georgia,'Songti SC','SimSun',serif;font-size:30px;font-weight:600;letter-spacing:.04em;margin:25px 0 8px;color:#2e2928}.night-dialog p{line-height:1.7}.night-lead{color:#74635a;margin:0 0 22px;font-size:14px}
.night-grid{display:grid;grid-template-columns:1fr 1fr;gap:1px;margin:26px 0 18px;border:1px solid #e5d5c7;border-radius:13px;overflow:hidden;background:#e5d5c7}.night-grid button{position:relative;display:flex;flex-direction:column;gap:9px;min-height:112px;text-align:left;background:#fffaf3;border:0;padding:20px;color:#3b302d;cursor:pointer;transition:background .2s}.night-grid button:hover{background:#fff2de}.night-grid b{font-size:15px;font-weight:600}.night-grid span,.night-note{color:#75635c;font-size:12px;line-height:1.65}.night-grid em{position:absolute;right:16px;top:15px;color:#b68167;font-style:normal;font-size:17px}.night-note{margin-top:18px}
.night-dialog button{font:inherit}.night-dialog button:focus-visible,.night-dialog textarea:focus-visible,.night-dialog input:focus-visible{outline:3px solid #9c6a52;outline-offset:2px}.night-dialog .primary{background:#9c654f;color:#fff;border:0;border-radius:9px;padding:11px 18px;cursor:pointer}.night-dialog button:disabled{opacity:.55}.night-back{border:0;background:none;color:#865d50;padding:4px 0;cursor:pointer;font-size:13px!important}.night-dialog form{display:grid;gap:10px}.night-dialog label,.night-dialog legend{color:#59463d;font-size:13px;line-height:1.6}.night-dialog textarea{width:100%;box-sizing:border-box;resize:vertical;min-height:100px;padding:14px 16px;border:1px solid #ddc9b7;border-radius:9px;font:inherit;line-height:1.9;color:#342b27;background:repeating-linear-gradient(to bottom,#fffdf8 0,#fffdf8 32px,#eee4d8 33px,#fffdf8 34px);box-shadow:0 3px 10px #6650400a}.night-dialog textarea::placeholder{color:#a18f82}.night-dialog textarea:focus{border-color:#aa7961}
.night-dialog fieldset{display:grid;gap:8px;border:0;border-top:1px solid #e6d8ca;margin:8px 0;padding:14px 0}.night-dialog input{accent-color:#9c654f}.night-actions{display:flex;flex-wrap:wrap;gap:8px}.night-actions button:not(.primary),.night-cards button{border:1px solid #d8c8b9;background:#fffaf3;color:#5f493f;border-radius:9px;padding:10px 14px;cursor:pointer}.night-thread{display:flex;flex-direction:column;gap:10px;max-height:32dvh;min-height:100px;overflow:auto;margin:14px 0}.night-bubble{align-self:flex-start;max-width:88%;padding:12px 15px;border-radius:3px 15px 15px 15px;background:#eee3d7;color:#3a302c;line-height:1.7;white-space:pre-wrap;overflow-wrap:anywhere}.night-bubble.mine{align-self:flex-end;border-radius:15px 3px 15px 15px;background:#e9d0ba}.night-status{color:#8a513d;min-height:1.5em;font-size:13px}.night-cards{display:grid;gap:10px;margin:16px 0}.night-cards article{border:1px solid #e7d7c5;background:#fffaf1;border-radius:10px;padding:16px}.night-cards article div{display:flex;justify-content:space-between;color:#806b5c;font-size:12px}.night-cards article p{white-space:pre-wrap;overflow-wrap:anywhere}.night-check{display:flex;gap:10px;align-items:center;background:#fffaf3;border:1px solid #e8d9c9;border-radius:9px;padding:13px}.night-check input{width:18px;height:18px}
/* The original chat keeps its familiar flow, with a quieter writing surface. */
.view-chat .composer{border-radius:13px;background:rgba(255,248,238,.08);border-color:rgba(235,211,190,.25);box-shadow:none;backdrop-filter:none}.view-chat .turn.from-nini .bubble{border-radius:4px 16px 16px 16px;background:rgba(255,248,238,.09);border-color:rgba(235,211,190,.14);backdrop-filter:none}.view-chat .turn.from-me .bubble{border-radius:16px 4px 16px 16px;background:rgba(219,167,124,.2);border-color:rgba(235,211,190,.15)}.app[data-phase=dawn] .view-chat .composer{background:#fffaf3;border-color:#d9c6b7}.app[data-phase=dawn] .view-chat .turn.from-nini .bubble{background:#f3e7da;color:#3a302c;border-color:#e4d5c6}.app[data-phase=dawn] .view-chat .turn.from-me .bubble{background:#ecd0ba;color:#3a302c;border-color:#e1bda2}
@media(max-width:600px){.stage-lamp{right:6%;top:78px;transform:scale(.65);transform-origin:top right;opacity:.6}.night-overlay{padding:0;align-items:flex-end}.night-dialog{width:100%;max-height:94dvh;border-radius:20px 20px 0 0;padding:22px 20px calc(22px + env(safe-area-inset-bottom))}.night-dialog h2{font-size:25px;margin:20px 0 8px}.night-lamp{right:18px;top:61px;transform:scale(.5)}.night-grid{margin:22px 0 12px}.night-grid button{min-height:98px;padding:16px}.night-actions button{flex:1 1 auto}.night-entry{max-width:90%}}
.island-start{display:flex;width:100%;align-items:center;justify-content:space-between;text-align:left;gap:12px;background:#efe2ce;border:1px solid #e0c8ac;border-radius:12px;padding:16px;color:#49372d;cursor:pointer}.island-start span{font-size:12px;color:#796456}.island-start b{font-size:15px}.island-start i{font-style:normal}.island-scene{position:relative;overflow:hidden;isolation:isolate;text-align:center;margin:15px 0;padding:24px 20px;border-radius:18px;background:radial-gradient(ellipse at 50% 58%,#d9ae75 0%,#5e5562 34%,#242a40 78%);color:#fff5e8;transition:background 2s;min-height:260px}.island-scene::after{content:'';position:absolute;z-index:-1;left:-10%;right:-10%;bottom:-80px;height:135px;border-radius:50%;background:#756858}.island-sky{color:#f8dfb9;letter-spacing:16px}.island-nini{width:125px;height:125px;margin:0 auto;background:url('/nini.png') center/contain no-repeat;filter:drop-shadow(0 8px 15px #1b1a28a0)}.island-whisper,.island-answer,.island-quiet{color:#fff7eb;font-size:14px;line-height:1.7}.island-scene .night-actions{justify-content:center}.island-scene button:not(.primary){padding:10px 14px;border:1px solid #f5e8d477;border-radius:9px;background:#fff8ef20;color:#fff7eb;cursor:pointer}.island-form{position:relative;text-align:left}.island-form label{color:#fff7eb}.island-form button{margin-top:5px}.island-paper{margin:14px auto;background:#fff8eb;color:#3a302c;max-width:320px;padding:17px;transform:rotate(-2deg);box-shadow:0 8px 18px #1114}.island-paper span{font-size:11px;color:#927b66}.island-paper p{white-space:pre-wrap;overflow-wrap:anywhere}.island-scene .night-note{color:#f1ded0}.island-dark{background:radial-gradient(ellipse at 50% 58%,#534d4e,#15192a 75%)}.island-dark .island-nini{opacity:.5}@media(prefers-reduced-motion:reduce){.island-scene{transition:none}}

/* The island is the home; other activities are available below it. */
.app:has(.view-home){grid-template-columns:1fr}
.app:has(.view-home) .stage{display:none}
.app:has(.view-home) .content{grid-column:1 / -1}
.app:has(.view-home) .content-inner{max-width:960px;margin:auto}
.view-home:has(.island-home)>:not(.island-home){display:none!important}
.island-home{width:100%;padding:18px 0 65px;color:#f7eee6;font-family:system-ui,-apple-system,'Microsoft YaHei',sans-serif}
.island-home-intro{text-align:center;margin:0 auto 22px}.island-kicker{font-size:11px;letter-spacing:.22em;color:#d9b89c}.island-home h1{font-family:Georgia,'Songti SC',serif;font-size:clamp(30px,4vw,48px);font-weight:500;letter-spacing:.08em;line-height:1.25;margin:12px 0}.island-home-intro p{color:#d8c8bd;font-size:14px;line-height:1.9;margin:0}
.island-home-scene{position:relative;isolation:isolate;overflow:hidden;text-align:center;padding:25px 20px 30px;border:1px solid #ffffff19;border-radius:20px;background:radial-gradient(ellipse at 50% 74%,#b18264 0%,#555061 34%,#252b40 72%,#1b2236 100%);min-height:300px;box-shadow:0 22px 65px #0003}.island-home-scene:after{content:'';position:absolute;z-index:-1;bottom:-115px;left:-10%;width:120%;height:200px;background:#716354;border-radius:50% 50% 0 0}.home-stars{position:absolute;top:25px;left:20%;right:20%;display:flex;justify-content:space-between;color:#f9dfbc;opacity:.75}.home-lamp{position:absolute;right:14%;top:28%;width:82px;height:113px;transform:scale(.85);filter:drop-shadow(0 0 22px #ffc87999)}.home-nini{height:170px;width:170px;margin:12px auto 0;background:url('/nini.png') center/contain no-repeat;filter:drop-shadow(0 12px 16px #17182280)}.island-home-scene p{font-size:14px;color:#fff5e9;margin:5px 0 17px}.home-primary-actions{display:flex;justify-content:center;gap:10px;flex-wrap:wrap}.home-primary-actions button{font:inherit;border-radius:9px;padding:12px 21px;cursor:pointer}.home-primary-actions button:first-child{border:1px solid #ecc5a6;background:#f0d0b1;color:#382d29;font-weight:600}.home-primary-actions button:first-child span{margin-left:12px}.home-primary-actions button+button{border:1px solid #f7e5cf88;color:#fff8ef;background:#ffffff13}
.island-steps{display:flex;align-items:center;justify-content:center;gap:16px;margin:20px 0 54px;color:#d3c3bb;font-size:12px}.island-steps b{color:#e3ae88;font-size:10px;margin-right:6px}.island-steps i{height:1px;width:20px;background:#ad998c}
.island-extras{display:grid;grid-template-columns:1fr 2fr;gap:24px;border-top:1px solid #ffffff24;padding-top:28px}.island-extras h2{font-family:Georgia,'Songti SC',serif;font-size:21px;font-weight:500;margin:9px 0}.island-extras p{font-size:12px;color:#c4b6af}.island-extra-links{display:grid;grid-template-columns:1fr 1fr;gap:0 20px}.island-extra-links button{position:relative;text-align:left;padding:13px 22px 13px 0;background:none;border:0;border-bottom:1px solid #ffffff20;color:#f3e9df;font:inherit;cursor:pointer}.island-extra-links b,.island-extra-links span{display:block}.island-extra-links b{font-size:14px;font-weight:500}.island-extra-links span{font-size:12px;color:#bfb2ad;margin-top:5px}.island-extra-links em{position:absolute;right:2px;top:16px;color:#d8ac91;font-style:normal}.island-disclosure{color:#f1ded0;line-height:1.5;font-size:11px}.island-paper-away{animation:paper-away .65s ease-in forwards}@keyframes paper-away{to{opacity:0;transform:translateY(90px) rotate(8deg) scale(.78)}}
@media(max-width:700px){.app:has(.view-home) .content{grid-column:auto}.island-home{padding:8px 0 45px}.island-home-intro{margin-bottom:18px}.island-home-intro h1{font-size:29px}.island-home-scene{min-height:270px;padding:18px 14px 24px}.home-nini{height:150px;width:150px}.home-lamp{right:7%;top:25%;transform:scale(.58)}.island-steps{gap:7px;margin:18px 0 35px;font-size:10px}.island-steps i{width:8px}.island-extras{grid-template-columns:1fr;gap:8px}.island-extra-links{gap:0 16px}}
@media(prefers-reduced-motion:reduce){.island-paper-away{animation-duration:.01ms}}
.island-scene:not(.island-dark) .island-nini{animation:island-glow 4s ease-in-out infinite}.island-dark{animation:island-night 1.6s ease-out both}@keyframes island-glow{50%{filter:drop-shadow(0 8px 22px #e4b783aa)}}@keyframes island-night{from{filter:brightness(1.45)}to{filter:brightness(1)}}@media(prefers-reduced-motion:reduce){.island-scene:not(.island-dark) .island-nini,.island-dark{animation:none}}
