*{box-sizing:border-box}[hidden]{display:none!important}body{margin:0;background:#f4f2e8;color:#354a3e;font:15px/1.6 'Malgun Gothic',sans-serif;background-image:radial-gradient(#dfe5d4 1px,transparent 1px);background-size:22px 22px}main{max-width:1150px;margin:auto;padding:28px}header{display:flex;align-items:center;gap:16px;margin-bottom:30px}h1{font-size:27px;margin:0;letter-spacing:-1px}h2{font-size:22px;margin:12px 0 20px}.sub,.eyebrow{font-size:11px;letter-spacing:2px;color:#7d9682}.leaf{font-size:45px;background:#dce8cf;border-radius:24px;width:68px;text-align:center}button,input,select{font:inherit;border-radius:12px;border:1px solid #dce1d2;padding:11px 15px}button{background:#e7ecdf;color:#405c48;cursor:pointer;font-weight:600}button:hover{background:#dce5d3}button:disabled{opacity:.5;cursor:wait}.primary,button.active{background:#507c61;color:white;border-color:transparent}.primary:hover{background:#416950}input,select{background:#fafbf7;min-width:0;color:#354a3e}input:focus,button:focus-visible{outline:3px solid #b8d4b1;outline-offset:2px}label{display:grid;gap:7px;margin-bottom:16px}.card{background:#fffef8;border:1px solid #e7e5d6;border-radius:25px;padding:28px;box-shadow:0 6px 22px #43513c07}#auth{max-width:470px;margin:40px auto}nav{display:flex;gap:8px;margin-bottom:24px}#auth-tabs button{font-size:13px;flex:1;padding:9px}#auth-submit{width:100%;margin-top:8px}.hint{font-size:13px;color:#7d8a77}#wallet{margin-left:auto;background:#f5e6ae;border-radius:50px;padding:8px 20px;font-weight:bold}#logout{font-size:12px}#planner{display:grid;grid-template-columns:1fr 300px;gap:24px}.date-row{display:flex;gap:10px;align-items:center;justify-content:space-between}.date-row label{margin:0;flex:1;text-align:center;font-size:20px;font-weight:bold}.date-row input{font-size:13px;width:160px;margin:auto;padding:5px}#todo-form,#friend-form{display:flex;gap:10px;margin:25px 0}#todo-text,#friend-id{flex:1}ul{list-style:none;padding:0;margin:0}li{padding:16px 0;border-bottom:1px dashed #e1e5d9;display:flex;gap:14px;align-items:center}li .check{border-radius:50%;padding:0;width:28px;height:28px;flex-shrink:0}li.done span{text-decoration:line-through;color:#92a18c}li.done .check{background:#90ae83;color:white}.empty{text-align:center;padding:35px;color:#8a9883}.island-art{background:#d9e8c7;border-radius:50%;height:180px;display:flex;justify-content:center;align-items:center;gap:6px;margin:40px 0;font-size:48px;border-bottom:15px solid #b9d9dc}.house{font-size:88px;color:#ab8561}#settings{max-width:640px}.friend-row{padding:16px 0;border-bottom:1px dashed #dce1d2;display:flex;justify-content:space-between;gap:12px}#status{min-height:26px;color:#8b5a38}footer{color:#929c88;font-size:12px;margin-top:26px}dialog{border:1px solid #d5dfcd;border-radius:24px;padding:30px;max-width:440px;color:#354a3e;background:#fffef8}dialog::backdrop{background:#263f3455}dialog div{display:flex;gap:12px;justify-content:flex-end}code{display:block;overflow-wrap:anywhere;background:#e9efdf;padding:15px;margin:12px 0}#recovery{border-top:1px solid #dce1d2;margin-top:20px;padding-top:20px}@media(max-width:800px){main{padding:16px}#planner{grid-template-columns:1fr}aside{display:none}.card{padding:20px}header{gap:9px}h1{font-size:23px}#logout{padding:8px}.leaf{width:50px;font-size:35px}.date-row{gap:6px}}
#tabs{flex-wrap:wrap}canvas{image-rendering:pixelated}#island-canvas,#friend-map{display:block;width:100%;height:auto;border-radius:20px;touch-action:manipulation;cursor:crosshair}.section-head{display:flex;justify-content:space-between;align-items:center;gap:16px}.shop-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(205px,1fr));gap:18px}.shop-item{display:flex;flex-direction:column;align-items:flex-start;padding:20px;border-radius:20px;background:#f6f5eb;border:1px solid #e5e7d9}.shop-item canvas{align-self:center}.shop-item h3{margin:5px 0}.shop-item .hint{flex:1;margin-top:0}.shop-item button{width:100%;margin-top:14px}.inventory-grid,.collection-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(145px,1fr));gap:14px}.bag-piece,.resident-card{display:flex;flex-direction:column;align-items:center;background:#f4f5e9;padding:15px;border-radius:20px;gap:8px;text-align:center}.bag-piece canvas{max-width:90px;height:90px}.bag-piece button,.resident-card button{font-size:12px;padding:7px 11px}.resident-card h3,.resident-card p{margin:0}.resident-card canvas{width:96px;height:120px}.toolbar{display:flex;gap:10px;margin-top:15px}#island-dialog-actions{flex-wrap:wrap}.leaf canvas{width:48px;height:60px;display:block;margin:auto}.record-icon{display:block;font-size:64px;color:#798f74;line-height:1.2}#music-card{margin-top:30px;border-top:1px dashed #dce1d2;padding-top:25px}#music-card h3{margin:5px 0}a{color:#507c61}.note{padding:16px;background:#f4f5eb;border-radius:15px;margin:12px 0}.note p{white-space:pre-wrap;overflow-wrap:anywhere}.note small{color:#86957e}.note button{margin-left:20px}textarea{width:100%;min-height:80px;border:1px solid #dce1d2;border-radius:12px;padding:12px;font:inherit;background:#fbfcf5}.friend-row{flex-wrap:wrap;justify-content:flex-start;align-items:center}.friend-row>span{min-width:140px;flex:1}.friend-row button{font-size:12px;padding:7px 12px}.bag-piece.selected{outline:2px solid #638362}@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important}}@media(max-width:600px){.shop-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.shop-item{padding:12px}.shop-item canvas{width:90px;height:90px}.shop-item h3{font-size:15px}.shop-item p{font-size:11px}.section-head{flex-wrap:wrap}#tabs button{padding:8px 12px;font-size:13px}}
.shop-item img{align-self:center;image-rendering:pixelated}.bag-piece img{width:90px;height:90px;image-rendering:pixelated}.toolbar{flex-wrap:wrap}.leaf{overflow:hidden}
.island-art{flex-direction:column;gap:2px;font-size:14px;height:190px;margin:24px 0}.island-art canvas{height:126px;width:101px;image-rendering:pixelated}.island-art strong{font-size:15px;line-height:1.25;white-space:nowrap}.island-art>img{width:110px;height:110px;object-fit:contain;image-rendering:pixelated}.leaf canvas{width:52px;height:65px;display:block;margin:auto}#profile-avatar{flex-shrink:0}.friend-row{flex-wrap:wrap}#island-canvas,#friend-map{touch-action:none}

#save-tools{display:flex;align-items:center;justify-content:space-between;gap:16px;margin:0 0 18px;padding:12px 18px;border:1px solid #dce5d3;border-radius:16px;background:#f8faf3;font-size:12px}#save-tools>div{display:flex;gap:16px;flex-wrap:wrap}#save-state{color:#648269}#save-state[data-state="pending"]{color:#927746}#save-state[data-state="failed"]{color:#b24f4f}#save-now{padding:7px 14px;font-size:12px;white-space:nowrap}

.friend-account{padding:16px 18px;background:#edf2e4;border:1px solid #d5dfca;border-radius:16px;margin:15px 0}.friend-account strong{display:inline-block;margin-right:14px;overflow-wrap:anywhere}.friend-account button{font-size:12px;padding:7px 12px}.friend-account p{font-size:13px;color:#506449;margin-bottom:0}#friend-feedback{font-size:14px;color:#35593d;overflow-wrap:anywhere}#friend-feedback[data-error="true"]{color:#a3422e}

/* Forest stationery planner and compact social workspace. */
body{background-color:#f6f4eb;background-image:radial-gradient(#dce4d6 1px,transparent 1px);background-size:24px 24px;color:#2d493b}main{max-width:1320px;padding:26px 32px}header{padding:10px 5px 20px;margin-bottom:6px}h1{letter-spacing:-1px}h2,h3{letter-spacing:-.5px}.card{border-color:#e0e6d5;box-shadow:0 5px 0 #e1e6d533,0 8px 26px #405b3910;border-radius:25px}button{transition:background .15s,transform .15s;border-color:#d8e2ce}button:hover{background:#dfeacb}button:active{transform:translateY(1px)}.primary{background:#537c61;color:#fff;border-color:#537c61}.primary:hover{background:#42684e}input,select,textarea{color:#2d493b;background:#fcfdf8;border-color:#dbe5d1}input:focus,textarea:focus,select:focus{outline:3px solid #bbd3a355;outline-offset:2px;border-color:#90ac78}#tabs{gap:9px;margin-bottom:23px;padding:4px 0}#tabs button{border-radius:14px;padding:12px 18px;font-weight:650;background:#eff2e5}#tabs button.active{background:#527c60;box-shadow:0 3px 0 #34513e;color:white}#save-tools{border-radius:15px;background:#fafbf5;margin-bottom:12px}
#planner{grid-template-columns:minmax(0,1fr) 285px;gap:22px}#planner>.planner{position:relative;padding:30px;background:#fffef9}#planner>.planner:before{content:'';position:absolute;width:74px;height:16px;background:#d6dfbdaa;top:-7px;left:32px;transform:rotate(-3deg);border-radius:2px}.date-row{border-bottom:1px dashed #dbe4cf;padding-bottom:22px;margin-bottom:18px}.date-row label{display:flex;flex-direction:column;gap:6px}.date-row label>span{font-size:23px;letter-spacing:-.8px}.date-row input{width:155px;border-radius:7px;font-size:12px;background:#f3f5e9}.date-row>button:first-child,.date-row>button:nth-child(3){border-radius:50%;width:38px;height:38px;padding:0;font-size:25px;flex-shrink:0}.planner>.hint{display:inline-block;font-size:11px;color:#6f815a;background:#f0f3df;padding:5px 11px;border-radius:8px;margin:0 0 15px}#day-progress{display:flex;align-items:center;gap:15px;margin:4px 0 19px;font-size:12px;color:#617a51}.day-progress-track{height:7px;flex:1;border-radius:12px;background:#eaf0df;overflow:hidden}.day-progress-track span{height:100%;display:block;background:#9ebd78;border-radius:12px;transition:width .2s}#todo-form{margin:12px 0 22px;gap:9px}#todo-form input{min-width:0;border-radius:12px;padding:13px 15px}#todo-form button{border-radius:12px}#todos{display:grid;gap:9px}#todos li{padding:14px 15px;border:1px solid #e3e9da;background:#fafbf4;border-radius:13px;min-height:57px;gap:13px;overflow-wrap:anywhere}#todos li:nth-child(3n+2){background:#f7f5e9;border-color:#ebe6ce}#todos li.done{background:#f0f4e8;opacity:.86}#todos li.done span{color:#7b8b71}li .check{border:2px solid #b6cba1;background:#fffef8;box-shadow:inset 0 0 0 3px #fffef8}li.done .check{background:#8fac79;color:#fff;box-shadow:none;border-color:#8fac79}#planner>aside{padding:25px 22px;background:linear-gradient(150deg,#f5f7e7,#fffef8);align-self:start}#planner>aside h2{font-size:23px}.island-art{border:1px solid #d9e5c9;background:#e8efd7;border-bottom:12px solid #c4d8c1;margin:18px 0;height:165px}.island-art canvas{height:105px;width:84px}#show-island{width:100%;font-size:12px}#music-card{padding-top:18px;margin-top:22px}.record-icon{height:68px;width:68px;display:flex;align-items:center;justify-content:center;font-size:35px;border-radius:50%;background:repeating-radial-gradient(#395745 0 3px,#46634f 4px 6px);color:#efe9b4;margin-bottom:12px;border:7px solid #e3e9d3}#music-card h3{font-size:16px}#music-card .hint{font-size:12px}#music-card a{font-size:12px}
.social-header{padding:22px 25px;margin-bottom:20px}.social-header h2{margin:2px 0 0}.social-header .section-head{align-items:center}.social-header #friend-form{margin:12px 0 0}.social-header #friend-form input{min-width:0}.social-header .friend-account{margin:15px 0 10px;padding:12px 15px;background:#f3f6e9}.friend-account p{font-size:12px}.social-workspace{display:grid;grid-template-columns:285px minmax(0,1fr);gap:20px;align-items:start}.friend-sidebar{padding:22px 18px;display:block!important;position:sticky;top:15px}.friend-sidebar h3{margin:0;font-size:16px}.count-pill{display:inline-block;background:#e8efd9;color:#587347;border-radius:20px;padding:3px 10px;font-size:11px;white-space:nowrap}.friend-sidebar .section-head{margin:0 4px 16px}.friend-row{display:grid;grid-template-columns:36px minmax(0,1fr) auto auto;gap:8px;align-items:center;border:1px solid transparent;padding:12px 8px;border-radius:13px;margin:6px 0;background:#f8faf2}.friend-row.selected{background:#e9f1df;border-color:#b8cda4}.friend-mini-avatar,.friend-badge{background:#dfeacb;border-radius:40% 44% 36% 46%;display:flex;align-items:center;justify-content:center;color:#507147;font-weight:bold}.friend-row>span{min-width:0;flex:none}.friend-mini-avatar{width:36px;height:38px;font-size:17px}.friend-identity{min-width:0}.friend-identity strong{display:block;font-size:13px;overflow-wrap:anywhere}.friend-identity small{display:block;font-size:10px;color:#7b8a6d}.friend-row button{font-size:11px;padding:6px 9px;border-radius:8px;white-space:nowrap}.friend-actions{position:relative}.friend-actions summary{cursor:pointer;list-style:none;color:#7b8c6c;padding:5px}.friend-actions[open]{grid-column:2/-1;display:flex;flex-wrap:wrap}.friend-actions button{margin:3px}.blocked-section{margin:22px 4px 0;padding-top:16px;border-top:1px dashed #dbe3d0;font-size:12px;color:#77856b}.blocked-section summary{cursor:pointer}.friend-main{min-width:0;display:grid;gap:18px}.empty-friend{text-align:center;padding:65px 25px;font-size:14px;color:#849079}.friend-profile{display:flex;gap:18px;align-items:center;padding:20px 25px;margin-bottom:18px;background:#f5f8eb}.friend-profile h2{margin:0;font-size:23px;overflow-wrap:anywhere}.friend-profile p{margin:3px 0 0;color:#7a8b6e;font-size:12px}.friend-badge{height:52px;width:52px;flex-shrink:0;font-size:24px}.friend-overview{display:grid;grid-template-columns:minmax(220px,.85fr) minmax(0,1.15fr);gap:16px;align-items:start}.friend-overview>.card{padding:22px;min-width:0}.friend-overview h3{font-size:16px;margin:0 0 8px}.friend-overview .hint{font-size:12px;line-height:1.8}.friend-task-list{margin-top:14px}.friend-task-list li{font-size:12px;padding:10px 0;gap:8px;align-items:start}.task-marker{color:#89a46d;flex-shrink:0}.friend-task-list li.done span:last-child{text-decoration:line-through;color:#7c8e70}#friend-map{margin-top:15px;border-radius:14px}#friend-music{display:flex;align-items:center;gap:18px;margin-top:17px;padding:20px 23px}#friend-music h3{font-size:16px;margin:3px 0}#friend-music p{margin:0}#friend-music>div{min-width:0;flex:1;overflow-wrap:anywhere}.friend-record{width:55px;height:55px;flex-shrink:0;border-radius:50%;background:repeating-radial-gradient(#385e4b 0 3px,#496e58 4px 6px);border:7px solid #e7edd7;display:flex;align-items:center;justify-content:center;color:#e6dfab;font-size:21px}.music-link{font-size:11px;white-space:nowrap;border:1px solid #d9e3cc;padding:9px 12px;border-radius:9px;background:#f4f8e9}#guestbook{padding:24px}#guestbook h3{margin:0 0 16px;font-size:17px}#guestbook>button{margin-top:8px}.note{border:1px solid #e1e8d4;background:#f8faf1}.note strong{font-size:13px}.note p{font-size:13px}.note small{font-size:10px}.note button{font-size:11px;padding:5px 9px}
@media(max-width:1050px){.social-workspace{grid-template-columns:245px minmax(0,1fr)}.friend-overview{grid-template-columns:1fr}.friend-row{grid-template-columns:30px minmax(0,1fr) auto auto}.friend-mini-avatar{width:30px;height:33px}#planner{grid-template-columns:minmax(0,1fr) 245px}}
@media(max-width:800px){main{padding:18px}#planner{grid-template-columns:1fr}#planner>aside{display:block;width:100%}.social-workspace{grid-template-columns:1fr}.friend-sidebar{position:static}.friend-sidebar #friend-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.friend-row{margin:0}.friend-overview{grid-template-columns:1fr 1fr}.social-header #friend-form{flex-wrap:wrap}.social-header #friend-form input{flex:1;min-width:160px}.friend-profile{margin-top:0}}
@media(max-width:560px){.friend-sidebar #friend-list,.friend-overview{grid-template-columns:1fr}.friend-profile{padding:18px}#planner>.planner{padding:22px 17px}.date-row{gap:7px;flex-wrap:wrap}.date-row label>span{font-size:19px}.date-row button{font-size:11px}#friend-music{flex-wrap:wrap}.music-link{margin-left:72px}#tabs button{padding:9px 12px;font-size:12px}#planner>aside{display:none}.social-header{padding:19px}.friend-account strong{font-size:12px}}
