:root{font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:#273e33;background:#f8f7f1;font-synthesis:none;--forest:#315b43;--leaf:#638c66;--mint:#dce9d5;--cream:#f8f7f1;--peach:#f5d7bc;--gold:#f5c77a;--ink:#273e33;--muted:#738275;--line:#e7e9dd;--shadow:0 20px 60px rgba(47,81,52,.1)}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;min-height:100vh}button,input,textarea,select{font:inherit}button{cursor:pointer}button:disabled{opacity:.55;cursor:not-allowed}img,video{max-width:100%}a{color:inherit}h1,h2,h3,p{margin-top:0}.serif{font-family:Georgia,"Times New Roman",serif;font-weight:400}.muted{color:var(--muted)}.small{font-size:.82rem}.eyebrow{font-size:.72rem;font-weight:800;letter-spacing:.18em;text-transform:uppercase;color:#7b9870}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.btn{border:0;border-radius:999px;padding:13px 23px;font-weight:700;display:inline-flex;align-items:center;justify-content:center;gap:10px;transition:transform .22s,box-shadow .22s,background .22s;white-space:nowrap}.btn:hover:not(:disabled){transform:translateY(-2px)}.btn:active:not(:disabled){transform:scale(.97)}.btn-primary{background:var(--forest);color:#fff;box-shadow:0 10px 24px rgba(49,91,67,.2)}.btn-primary:hover{background:#244b35;box-shadow:0 14px 26px rgba(49,91,67,.28)}.btn-soft{background:#e9eee0;color:var(--forest)}.btn-cream{background:#fffaf0;color:var(--forest)}.btn-plain{background:transparent;color:var(--forest)}.btn-danger{background:#8d514a;color:#fff}.icon-btn{width:44px;height:44px;border:0;border-radius:50%;display:inline-grid;place-items:center;color:var(--forest);background:#fffaf0;transition:transform .2s,background .2s}.icon-btn:hover{transform:translateY(-2px);background:#edf1e5}.icon{width:20px;height:20px;stroke:currentColor;fill:none;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;flex:none}.icon.sm{width:16px;height:16px}.icon.lg{width:26px;height:26px}
input,textarea,select{width:100%;border:1px solid #d9e0d4;border-radius:16px;background:#fffefa;color:var(--ink);padding:14px 16px;outline:none;transition:border .2s,box-shadow .2s}input:focus,textarea:focus,select:focus{border-color:#729b77;box-shadow:0 0 0 4px rgba(108,154,111,.14)}textarea{resize:vertical;min-height:140px;line-height:1.6}label{display:block;font-size:.88rem;font-weight:700;margin-bottom:8px}form .field{margin-bottom:17px}.helper{font-size:.77rem;color:var(--muted);margin:7px 0 0}.error-text{color:#9c4b42}
#toast{position:fixed;bottom:26px;left:50%;transform:translate(-50%,30px);z-index:1000;opacity:0;pointer-events:none;background:#2e5740;color:#fff;border-radius:16px;padding:13px 20px;box-shadow:var(--shadow);transition:opacity .3s,transform .3s;max-width:min(90vw,480px);text-align:center}#toast.show{opacity:1;transform:translate(-50%,0)}#toast.bad{background:#8d514a}
.auth-shell{min-height:100vh;display:grid;grid-template-columns:minmax(0,1.04fr) minmax(430px,.96fr);background:#f9f8f2}.auth-art{position:relative;overflow:hidden;padding:46px 7vw;min-height:100vh;display:flex;flex-direction:column;justify-content:space-between;background:radial-gradient(circle at 75% 20%,#f9dfaa 0 16%,transparent 34%),linear-gradient(145deg,#e5eddb 4%,#f9f6e9 58%,#f5dfc4)}.auth-art:before,.auth-art:after{content:"";position:absolute;border-radius:50%;pointer-events:none}.auth-art:before{width:620px;height:620px;border:1px solid rgba(72,115,78,.17);left:-130px;bottom:-340px;box-shadow:0 0 0 60px rgba(255,255,255,.16),0 0 0 130px rgba(255,255,255,.1)}.auth-art:after{width:330px;height:330px;background:#cdddbd;right:-130px;bottom:15%;filter:blur(2px)}.auth-brand,.auth-copy,.auth-scene{position:relative;z-index:1}.auth-brand{display:flex;gap:12px;align-items:center;font-family:Georgia,serif;font-size:1.32rem;color:var(--forest)}.auth-brand img{width:46px;height:46px;border-radius:14px}.auth-copy{max-width:590px;margin:8vh 0 2vh}.auth-copy h1{font-size:clamp(3.3rem,5.5vw,6.5rem);line-height:.98;letter-spacing:-.065em;color:#315943;margin-bottom:24px}.auth-copy h1 em{font-style:italic;color:#739a75}.auth-copy p{font-size:1.08rem;line-height:1.7;max-width:430px;color:#66806a}.auth-scene{height:220px;display:flex;align-items:flex-end}.scene-card{height:170px;width:140px;border:8px solid #fffefa;background:linear-gradient(180deg,#f9d4a0 0 46%,#acc7a0 46%);border-radius:17px;transform:rotate(-11deg);box-shadow:0 20px 36px rgba(48,74,45,.16);position:relative;animation:float 6s ease-in-out infinite}.scene-card:before{content:"";position:absolute;width:54px;height:54px;border-radius:50%;background:#fbe4a4;top:15px;right:13px}.scene-card:nth-child(2){margin-left:-30px;transform:rotate(8deg) translateY(-25px);background:linear-gradient(160deg,#e6edcf 0 52%,#86ad89 52%);animation-delay:-2s}.scene-card:nth-child(3){margin-left:-30px;transform:rotate(-4deg) translateY(4px);background:linear-gradient(150deg,#e4ebd1 0 48%,#f1caa6 48%);animation-delay:-4s}.auth-panel{display:grid;place-items:center;padding:38px}.auth-box{width:min(100%,430px);animation:rise .55s both}.auth-box .mini-brand{display:none}.auth-box h2{font-size:clamp(2.2rem,3.3vw,3rem);line-height:1.12;letter-spacing:-.04em;margin:13px 0 12px}.auth-box p.lead{line-height:1.65;color:var(--muted);margin-bottom:31px}.auth-box .btn{width:100%;margin-top:6px}.auth-links{display:flex;justify-content:space-between;gap:12px;align-items:center;margin-top:22px}.link-btn{border:0;background:none;padding:0;color:var(--forest);text-decoration:underline;text-underline-offset:4px;font-weight:650;font-size:.87rem}.auth-foot{font-size:.78rem;color:#94a293;text-align:center;margin-top:48px}
.site{min-height:100vh;background:radial-gradient(circle at 3% 10%,#f2ead7 0,transparent 24%),#faf9f4;padding-bottom:120px}.topbar{height:86px;display:flex;align-items:center;justify-content:space-between;gap:20px;padding:0 max(28px,calc((100vw - 1320px)/2));border-bottom:1px solid rgba(101,128,94,.1);background:rgba(250,249,244,.88);backdrop-filter:blur(20px);position:sticky;top:0;z-index:20}.top-left,.top-right{display:flex;align-items:center;gap:15px}.top-right{gap:10px}.brand-lockup{display:flex;align-items:center;gap:10px;text-decoration:none}.brand-lockup img{width:47px;height:47px;border-radius:15px}.brand-type{font-family:Georgia,serif;font-size:1.35rem;letter-spacing:-.045em;color:var(--forest);white-space:nowrap}.brand-type em{font-style:italic;font-size:1.65rem}.avatar{width:36px;height:36px;border-radius:50%;background:#dce9d5;display:grid;place-items:center;color:var(--forest);font-weight:800}.container{width:min(100% - 48px,1240px);margin:auto}.hero{position:relative;overflow:hidden;margin:40px auto 36px;min-height:265px;padding:52px 6%;border-radius:34px;background:radial-gradient(circle at 80% -20%,#ffedbd 0,transparent 38%),linear-gradient(105deg,#dfead2 0%,#f8efd9 100%);box-shadow:0 15px 40px rgba(53,91,56,.07)}.hero:before{content:"";position:absolute;width:280px;height:280px;border-radius:50%;background:#f7d28d;right:10%;top:-115px;opacity:.75;animation:glow 8s ease-in-out infinite}.hero:after{content:"";position:absolute;width:500px;height:240px;border-radius:50% 50% 0 0;background:#b8d1ad;right:-50px;bottom:-190px;box-shadow:-130px 35px 0 20px #cadbb6}.hero-content{position:relative;z-index:1;max-width:650px}.hero h1{font-size:clamp(2.5rem,4.7vw,4.4rem);line-height:1.05;letter-spacing:-.055em;color:var(--forest);margin:13px 0}.hero p{font-size:1rem;line-height:1.6;color:#6b806d;margin:0}.sun-speck{position:absolute;z-index:1;right:21%;top:45%;font-size:2.5rem;color:#fff5cc;animation:float 5s ease-in-out infinite}.pending-banner{display:flex;align-items:center;justify-content:space-between;gap:16px;background:#fae7d5;color:#82564a;border:1px solid #f2d3bc;border-radius:18px;padding:16px 20px;margin-bottom:26px}.toolbar{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:26px}.toolbar h2{font-size:2.45rem;letter-spacing:-.05em;margin:0}.toolbar-sub{margin:6px 0 0;color:var(--muted);font-size:.9rem}.filters{display:flex;gap:10px;flex-wrap:wrap;justify-content:flex-end}.filter-search{position:relative;min-width:250px}.filter-search input{padding-left:41px;height:45px;border-radius:999px;background:#fff}.filter-search .icon{position:absolute;left:15px;top:13px;color:#84958a}.filter-select{width:auto;min-width:130px;height:45px;border-radius:999px;padding:0 34px 0 16px;background:#fff}.year-head,.month-head,.week-head{display:flex;align-items:center;gap:10px;border:0;background:transparent;color:var(--forest);padding:13px 0;font-weight:700;width:100%;text-align:left}.year-head{font-family:Georgia,serif;font-size:1.55rem;border-top:1px solid var(--line);margin-top:20px}.month-head{font-size:1.1rem;padding-left:17px}.week-head{font-size:.88rem;color:#758d76;padding-left:37px}.group-count{font-size:.72rem;color:#8fa18d;background:#eaf0e4;padding:3px 9px;border-radius:99px}.chevron{transition:transform .2s}.closed>.year-head .chevron,.closed>.month-head .chevron,.closed>.week-head .chevron{transform:rotate(-90deg)}.closed>.group-body{display:none}.card-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:23px;padding:10px 0 21px 37px}.post-card{background:#fff;overflow:hidden;border:1px solid #eff0e9;border-radius:24px;box-shadow:0 9px 32px rgba(39,71,47,.055);cursor:pointer;transition:transform .3s,box-shadow .3s;animation:rise .55s both}.post-card:hover{transform:translateY(-6px);box-shadow:0 24px 46px rgba(39,71,47,.12)}.card-media{height:255px;position:relative;background:linear-gradient(135deg,#dce9d5,#f8e1be);overflow:hidden}.card-media img,.card-media video{width:100%;height:100%;object-fit:cover;display:block;transition:transform .5s}.post-card:hover .card-media img{transform:scale(1.05)}.card-no-media{height:190px;display:grid;place-items:center}.card-no-media .icon{width:60px;height:60px;color:#7da47d;opacity:.7}.card-badge{position:absolute;left:17px;top:17px;border-radius:99px;background:rgba(255,255,255,.9);backdrop-filter:blur(8px);padding:8px 12px;font-size:.7rem;font-weight:800;display:flex;align-items:center;gap:5px}.card-content{padding:22px 24px 24px}.card-meta{display:flex;align-items:center;gap:10px;color:#8a988a;font-size:.75rem;margin-bottom:10px;flex-wrap:wrap}.card-content h3{font-family:Georgia,serif;font-size:1.65rem;line-height:1.15;font-weight:400;letter-spacing:-.035em;margin-bottom:10px;color:#315843}.card-excerpt{color:#687c6d;font-size:.89rem;line-height:1.58;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden;min-height:4.2em;margin:0}.card-footer{display:flex;align-items:center;justify-content:space-between;margin-top:20px;gap:8px}.tags{display:flex;flex-wrap:wrap;gap:6px}.tag{font-size:.68rem;color:#55785b;background:#e9f0e4;padding:6px 9px;border-radius:99px}.read-more{color:var(--forest);font-size:.76rem;font-weight:800;white-space:nowrap}.empty{border:1px dashed #c7d6c2;background:linear-gradient(130deg,#f2f5ec,#fbf7ec);border-radius:28px;min-height:350px;display:grid;place-items:center;text-align:center;padding:32px}.empty-icon{width:90px;height:90px;background:#dce9d5;border-radius:28px;display:grid;place-items:center;margin:0 auto 22px;transform:rotate(-8deg)}.empty-icon .icon{width:45px;height:45px;color:#59845f}.empty h3{font-family:Georgia,serif;font-size:2rem;font-weight:400;color:var(--forest);margin-bottom:10px}.empty p{max-width:380px;line-height:1.6;color:var(--muted);margin:0 auto 20px}
.fab{position:fixed;z-index:24;bottom:max(30px,env(safe-area-inset-bottom));left:50%;transform:translateX(-50%);width:70px;height:70px;border:5px solid #faf9f4;border-radius:50%;background:#3e7551;color:#fff;box-shadow:0 13px 35px rgba(44,100,61,.35);display:grid;place-items:center;transition:transform .25s,background .25s}.fab:hover{transform:translateX(-50%) scale(1.08) rotate(90deg);background:#2d6542}.fab .icon{width:28px;height:28px}.music-float{position:fixed;z-index:22;right:28px;bottom:max(32px,env(safe-area-inset-bottom));border:0;background:#fffaf0;color:#4a7151;border-radius:999px;box-shadow:0 9px 30px rgba(50,76,55,.16);height:58px;padding:0 20px 0 10px;display:flex;align-items:center;gap:11px;font-weight:700;font-size:.78rem;max-width:180px}.music-disc{width:40px;height:40px;border-radius:50%;background:#e3eedb;display:grid;place-items:center}.music-float.playing .music-disc{animation:spin 5s linear infinite}.music-float.paused .music-disc{animation-play-state:paused}
.scrim{position:fixed;inset:0;background:rgba(28,50,37,.42);backdrop-filter:blur(6px);z-index:50;animation:fade .2s both}.drawer{position:fixed;z-index:51;top:0;left:0;height:100vh;width:min(370px,90vw);background:#fffdf7;padding:30px;box-shadow:var(--shadow);animation:slide .3s both;display:flex;flex-direction:column}.drawer-top{display:flex;justify-content:space-between;align-items:center;margin-bottom:33px}.drawer-brand{display:flex;align-items:center;gap:9px;font-family:Georgia,serif;font-size:1.45rem;color:var(--forest)}.drawer-brand img{width:40px;height:40px}.drawer-nav{display:grid;gap:8px}.nav-item{border:0;border-radius:14px;background:transparent;color:#526c58;padding:14px 15px;display:flex;align-items:center;gap:15px;text-align:left;font-weight:700}.nav-item:hover,.nav-item.active{background:#ecf2e8;color:#2d6341}.drawer-bottom{margin-top:auto;border-top:1px solid var(--line);padding-top:20px}.drawer-quote{font-family:Georgia,serif;font-style:italic;line-height:1.5;color:#849a86;font-size:1.13rem;margin-bottom:23px}.view-heading{display:flex;align-items:end;justify-content:space-between;gap:20px;margin:42px 0 26px}.view-heading h1{font-size:clamp(2.3rem,4vw,3.7rem);letter-spacing:-.05em;color:var(--forest);margin:6px 0}.view-heading p{color:var(--muted);margin:0}.simple-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}.simple-row{border:1px solid var(--line);border-radius:20px;background:#fff;padding:22px;display:flex;justify-content:space-between;align-items:center;gap:12px}.simple-row h3{font-family:Georgia,serif;font-weight:400;font-size:1.4rem;margin:0 0 6px}.simple-row p{font-size:.82rem;color:var(--muted);margin:0}.row-actions{display:flex;gap:7px}.notice-panel{background:#fff;border:1px solid var(--line);border-radius:25px;padding:28px;max-width:750px;box-shadow:0 12px 28px rgba(39,71,47,.05)}.danger-panel{border-color:#efd6ce;background:#fffaf7;margin-top:20px}.danger-panel h3{color:#8e5147}.danger-panel p{line-height:1.65;color:#776963}.playlist{display:grid;gap:10px;margin:22px 0}.track{display:flex;align-items:center;gap:13px;background:#fff;border:1px solid var(--line);border-radius:17px;padding:12px 14px}.track.current{border-color:#8db692;background:#f5faf0}.track-number{width:36px;height:36px;border-radius:50%;display:grid;place-items:center;background:#e6eee0;color:#5d8465}.track-info{min-width:0;flex:1}.track-info strong,.track-info small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.track-info small{color:var(--muted);margin-top:2px}.track-controls{display:flex;gap:4px}.track-controls .icon-btn{width:33px;height:33px}.track-controls .icon{width:16px;height:16px}.toggle-row{display:flex;align-items:center;justify-content:space-between;gap:15px;margin:19px 0}.switch{position:relative;width:52px;height:30px;border:0;border-radius:20px;background:#cbd5c7;transition:background .2s}.switch.on{background:#5d9268}.switch:after{content:"";position:absolute;width:22px;height:22px;border-radius:50%;background:#fff;top:4px;left:4px;transition:transform .2s}.switch.on:after{transform:translateX(22px)}.upload-box{border:1px dashed #a9c4a7;border-radius:18px;background:#f4f8ef;padding:24px;text-align:center}.upload-box input{display:none}.upload-box label{margin:0;cursor:pointer}.upload-box .icon{display:block;margin:0 auto 10px;width:28px;height:28px;color:#699273}
.modal-wrap{position:fixed;inset:0;z-index:55;display:grid;place-items:center;padding:20px;overflow:auto}.modal-wrap .scrim{z-index:0}.modal{position:relative;z-index:1;background:#fffefa;border-radius:28px;box-shadow:0 30px 90px rgba(23,45,28,.24);width:min(100%,650px);max-height:min(92vh,980px);overflow:auto;animation:modal-in .3s both}.modal.wide{width:min(100%,850px)}.modal-head{position:sticky;top:0;z-index:3;background:rgba(255,254,250,.95);backdrop-filter:blur(10px);display:flex;align-items:center;justify-content:space-between;padding:23px 28px;border-bottom:1px solid var(--line)}.modal-head h2{font-family:Georgia,serif;font-weight:400;font-size:1.8rem;margin:0;color:var(--forest)}.modal-body{padding:28px}.modal-actions{display:flex;gap:10px;justify-content:flex-end;flex-wrap:wrap;margin-top:24px}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:15px}.upload-preview{display:flex;gap:9px;overflow:auto;margin:11px 0 18px}.preview-thumb{position:relative;flex:none;width:95px;height:95px;border-radius:13px;overflow:hidden;background:#e9efe3}.preview-thumb img,.preview-thumb video{width:100%;height:100%;object-fit:cover}.preview-thumb button{position:absolute;right:4px;top:4px;width:25px;height:25px;border:0;border-radius:50%;background:rgba(255,255,255,.9);color:#6a4b47;font-size:1rem}.map-toolbar{display:flex;align-items:center;justify-content:space-between;gap:8px;flex-wrap:wrap;margin:12px 0}.map-shell{height:245px;border-radius:18px;overflow:hidden;position:relative;background:#e0ead7;cursor:crosshair;touch-action:none}.map-tiles{position:absolute;inset:0;overflow:hidden}.map-tiles img{position:absolute;width:256px;height:256px;max-width:none;user-select:none;pointer-events:none}.map-pin{position:absolute;left:50%;top:50%;transform:translate(-50%,-100%);font-size:30px;filter:drop-shadow(0 3px 3px #425c3b88);pointer-events:none}.map-zoom{position:absolute;right:10px;top:10px;display:grid;gap:5px}.map-zoom button{width:32px;height:32px;border:0;border-radius:8px;background:#fff;font-size:1.15rem}.map-attribution{position:absolute;right:5px;bottom:3px;background:#ffffffc9;padding:2px 5px;font-size:10px;color:#37473b}.map-attribution a{text-decoration:underline}.coords{font-family:ui-monospace,Consolas,monospace;font-size:.78rem;color:#728673;margin-top:7px}.detail-cover{height:340px;background:#dce9d5}.detail-cover img,.detail-cover video{height:100%;width:100%;object-fit:cover}.detail-body{padding:30px}.detail-body h2{font-family:Georgia,serif;font-weight:400;font-size:clamp(2rem,5vw,3rem);color:var(--forest);letter-spacing:-.04em;margin:12px 0}.detail-body p{line-height:1.8;white-space:pre-wrap;color:#566b5a}.detail-meta{display:flex;gap:12px;flex-wrap:wrap;color:#8a9b8c;font-size:.8rem}.detail-thumbs{display:flex;gap:8px;overflow:auto;margin:18px 0}.detail-thumbs button{width:70px;height:70px;flex:none;border:2px solid transparent;border-radius:10px;overflow:hidden;padding:0;background:#e7ece4}.detail-thumbs button.active{border-color:#4c8056}.detail-thumbs img,.detail-thumbs video{width:100%;height:100%;object-fit:cover}.welcome{position:fixed;inset:0;z-index:80;background:radial-gradient(circle at 60% 35%,#f8e2b2 0,transparent 38%),linear-gradient(145deg,#dfead4,#f9f7ea);display:grid;place-items:center;text-align:center;padding:25px;animation:fade .4s both}.welcome-inner{max-width:580px;animation:rise .6s both}.welcome img{width:90px;height:90px;border-radius:25px;box-shadow:0 15px 30px #75916f33;animation:float 5s ease-in-out infinite}.welcome h1{font-family:Georgia,serif;font-weight:400;letter-spacing:-.06em;color:var(--forest);font-size:clamp(3.2rem,7vw,6rem);margin:25px 0 12px}.welcome p{color:#728873;line-height:1.7;font-size:1.06rem;margin-bottom:27px}.welcome-actions{display:flex;justify-content:center;gap:10px;flex-wrap:wrap}
@keyframes rise{from{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@keyframes fade{from{opacity:0}to{opacity:1}}@keyframes slide{from{transform:translateX(-100%)}to{transform:translateX(0)}}@keyframes modal-in{from{opacity:0;transform:translateY(18px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes float{0%,100%{translate:0 0}50%{translate:0 -9px}}@keyframes glow{0%,100%{transform:scale(1);opacity:.75}50%{transform:scale(1.1);opacity:.9}}@keyframes spin{to{transform:rotate(360deg)}}
@media(max-width:960px){.auth-shell{grid-template-columns:1fr}.auth-art{min-height:260px;padding:30px 7vw}.auth-copy{margin:20px 0 0}.auth-copy h1{font-size:3rem;margin-bottom:9px}.auth-copy p,.auth-scene{display:none}.auth-panel{padding:45px 24px}.toolbar{align-items:flex-start;flex-direction:column}.filters{justify-content:flex-start;width:100%}.hero{min-height:230px}.simple-grid{grid-template-columns:1fr}}
@media(max-width:650px){.topbar{height:72px;padding:0 17px}.brand-lockup img{width:38px;height:38px}.brand-type{font-size:1.06rem}.brand-type em{font-size:1.3rem}.top-right .avatar{display:none}.container{width:min(100% - 30px,1240px)}.hero{margin:19px auto 27px;padding:35px 25px;min-height:225px;border-radius:24px}.hero h1{font-size:2.8rem}.hero:after{opacity:.55;right:-190px}.hero:before{right:-25px;top:-160px}.toolbar h2{font-size:2rem}.filters{display:grid;grid-template-columns:1fr 1fr}.filter-search{grid-column:1/-1;min-width:0}.filter-select{width:100%;min-width:0}.card-grid{grid-template-columns:1fr;padding-left:18px;gap:15px}.card-media{height:230px}.month-head{padding-left:8px}.week-head{padding-left:18px}.music-float{right:13px;bottom:32px;padding-right:12px}.music-float .music-label{display:none}.fab{width:64px;height:64px}.modal-wrap{padding:10px}.modal{max-height:95vh;border-radius:20px}.modal-head{padding:17px 19px}.modal-body{padding:20px}.form-grid{grid-template-columns:1fr}.detail-cover{height:255px}.detail-body{padding:20px}.auth-art{min-height:210px}.auth-copy h1{font-size:2.7rem}.auth-box .auth-foot{margin-top:27px}.simple-row{padding:17px}.view-heading{margin:30px 0 20px}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}

.password-control{position:relative}
.password-control input{padding-right:56px}
.password-toggle{position:absolute;right:7px;top:50%;transform:translateY(-50%);width:42px;height:42px;border:0;border-radius:12px;background:transparent;color:#6b816f;display:grid;place-items:center;cursor:pointer}
.password-toggle:hover{background:#edf3e8;color:var(--forest)}
.password-toggle:focus-visible{outline:3px solid #88aa8d;outline-offset:2px}
.password-toggle .icon{width:20px;height:20px}

.welcome{overflow:hidden}
.welcome.leaving{animation:welcome-exit .38s ease-in forwards;pointer-events:none}
.welcome-inner{width:min(100%,580px);animation:none}
.welcome-envelope{position:relative;width:190px;height:132px;margin:0 auto 46px;filter:drop-shadow(0 20px 19px rgba(50,82,56,.16));animation:envelope-arrive .55s cubic-bezier(.2,1.4,.5,1) both}
.welcome-envelope-back,.welcome-envelope-front,.welcome-envelope-flap,.welcome-letter,.welcome-envelope-seal{position:absolute}
.welcome-envelope-back{inset:0;border-radius:13px;background:#dfebd5;border:2px solid #a9c5a7;z-index:1}
.welcome-letter{left:24px;right:24px;top:15px;height:105px;border-radius:9px;background:#fffefa;box-shadow:0 4px 13px rgba(64,91,67,.12);z-index:2;display:grid;place-items:center;animation:letter-rise .85s .9s cubic-bezier(.2,.8,.2,1) both}
.welcome-letter img{width:54px;height:54px;border-radius:15px;box-shadow:none;animation:none}
.welcome-envelope-front{inset:0;border-radius:0 0 13px 13px;background:linear-gradient(145deg,#f6f1dc,#e6efdb);clip-path:polygon(0 17%,50% 57%,100% 17%,100% 100%,0 100%);z-index:3}
.welcome-envelope-flap{inset:0;background:#c8dec3;clip-path:polygon(0 0,100% 0,50% 62%);transform-origin:top center;z-index:4;backface-visibility:hidden;animation:envelope-open .65s .55s ease-in-out both}
.welcome-envelope-seal{z-index:5;left:50%;top:55%;transform:translate(-50%,-50%);width:34px;height:34px;border-radius:50%;background:#e6bb76;color:#fff;display:grid;place-items:center;font-size:1.25rem;box-shadow:0 4px 9px rgba(109,87,53,.15);animation:seal-away .25s .65s forwards}
.welcome-copy{animation:welcome-copy-in .6s 1.2s both}
.welcome-copy .eyebrow{letter-spacing:.22em;color:#65816d}
.welcome h1{font-size:clamp(2.4rem,6vw,4.6rem);line-height:1.1;margin:18px 0 0}
@keyframes envelope-arrive{from{opacity:0;transform:translateY(40px) scale(.76) rotate(-8deg)}to{opacity:1;transform:translateY(0) scale(1) rotate(0)}}
@keyframes envelope-open{from{transform:rotateX(0)}to{transform:rotateX(180deg);z-index:1}}
@keyframes letter-rise{from{transform:translateY(0)}to{transform:translateY(-66px)}}
@keyframes seal-away{to{opacity:0;transform:translate(-50%,-80%) scale(.5)}}
@keyframes welcome-copy-in{from{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}
@keyframes welcome-exit{to{opacity:0;transform:scale(1.025)}}
@media(prefers-reduced-motion:reduce){.welcome-copy,.welcome-envelope,.welcome-envelope-flap,.welcome-letter{animation-delay:0s!important}.welcome-copy{opacity:1}.welcome-envelope-flap{transform:rotateX(180deg)}.welcome-letter{transform:translateY(-66px)}.welcome-envelope-seal{display:none}}

.account-name{max-width:150px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--forest);font-size:.88rem;font-weight:700}
.music-float{width:62px;height:62px;max-width:none;padding:0;display:grid;place-items:center;border-radius:50%}
.music-disc{width:48px;height:48px;border:1px solid #b9d2b6;background:radial-gradient(circle,#f5f9ed 0 24%,#cfe2c9 25% 33%,#e5f0dc 34% 60%,#cfe2c9 61% 67%,#e5f0dc 68%);animation:spin 5s linear infinite;animation-play-state:paused}
.music-disc .icon{width:21px;height:21px;color:#4b7755}
.music-float.playing .music-disc{animation-play-state:running}
@media(max-width:800px){.topbar{height:auto;min-height:72px;padding:10px 16px;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px}.top-left,.top-right{width:auto;min-width:0}.top-left{gap:8px}.top-right{justify-content:flex-end}.topbar .account-name,.topbar .avatar{display:none}.brand-lockup{min-width:0;gap:7px}.brand-lockup img{flex:none}.brand-type{white-space:normal;line-height:1.08}}
@media(max-width:480px){.brand-type{font-size:1.02rem}.brand-type em{font-size:1.25rem}.account-name{max-width:130px}}
@media(prefers-reduced-motion:reduce){.music-disc{animation:none!important}}

.avatar{overflow:hidden;flex:none}
.avatar img{display:block;width:100%;height:100%;object-fit:cover;border-radius:50%}
.account-name{display:flex;flex-direction:column;gap:2px;line-height:1.12}
.account-name strong,.account-name small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.account-name small{color:#91a094;font-size:.72rem;font-weight:500}
.drawer-profile{display:none;width:100%;align-items:center;gap:13px;text-align:left;border:1px solid #e2eadd;border-radius:17px;background:#f4f8ef;padding:13px 14px;margin:-13px 0 20px;color:var(--forest);cursor:pointer}
.drawer-profile:hover{background:#eaf2e5}
.drawer-profile .avatar{width:46px;height:46px;font-size:1.1rem}
.drawer-profile .account-name{min-width:0;max-width:100%;font-size:1rem}
.drawer-profile .account-name small{margin-top:3px;font-size:.78rem}
@media(max-width:800px){.drawer-profile{display:flex}}
.profile-settings-head{display:flex;align-items:center;gap:18px}
.profile-settings-head h3{font-size:1.8rem;color:var(--forest);margin:0 0 5px}
.profile-settings-head p{margin:0;line-height:1.45}
.profile-avatar{width:88px;height:88px;font-size:2rem}
.profile-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin:19px 0 24px}
.profile-actions label{margin:0;cursor:pointer}
.profile-form{max-width:460px}
.profile-login-note{margin:25px 0 0;line-height:1.7;border-top:1px solid var(--line);padding-top:18px}
@media(max-width:480px){.profile-avatar{width:70px;height:70px}.profile-settings-head h3{font-size:1.55rem}}

.detail-photo-trigger{display:block;position:relative;width:100%;height:100%;padding:0;border:0;background:transparent;cursor:zoom-in}
.detail-photo-trigger img{width:100%;height:100%;object-fit:cover}
.detail-photo-trigger span{position:absolute;right:14px;bottom:14px;padding:8px 12px;border-radius:999px;background:rgba(22,39,29,.76);color:#fff;font-size:.76rem;font-weight:700}
#photo-viewer-root{position:fixed;inset:0;z-index:90}
.photo-viewer{width:100%;height:100vh;height:100dvh;display:grid;grid-template-rows:auto minmax(0,1fr) auto;background:#17251d;color:#fff}
.photo-viewer-top,.photo-viewer-bottom{display:flex;align-items:center;gap:8px;padding:12px max(16px,env(safe-area-inset-right));background:rgba(18,32,24,.96)}
.photo-viewer-top{justify-content:space-between;padding-top:max(12px,env(safe-area-inset-top))}
.photo-viewer-top strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-family:Georgia,serif;font-size:1.1rem;font-weight:400}
.photo-viewer-top>div{display:flex;gap:7px;flex:none}
.photo-viewer-bottom{justify-content:center;padding-bottom:max(12px,env(safe-area-inset-bottom))}
.photo-viewer-bottom span{min-width:40px;text-align:center;font-size:.82rem;color:#d6e1d4}
.photo-viewer-btn{display:grid;place-items:center;width:44px;height:44px;flex:none;border:1px solid #ffffff3d;border-radius:50%;background:#ffffff19;color:#fff;font-size:1.5rem;cursor:pointer}
.photo-viewer-btn:hover:not(:disabled){background:#ffffff30}
.photo-viewer-btn:disabled{opacity:.35;cursor:default}
.photo-viewer-btn .icon{width:20px;height:20px}
.photo-viewer-reset{width:58px;border-radius:22px;font-size:.76rem;font-weight:700}
.photo-viewer-stage{min-width:0;min-height:0;display:flex;align-items:center;justify-content:center;overflow:hidden;touch-action:none;cursor:zoom-in}
.photo-viewer-stage.zoomed{cursor:grab}
.photo-viewer-stage.zoomed:active{cursor:grabbing}
.photo-viewer-stage img{display:block;width:auto;height:auto;max-width:100%;max-height:100%;object-fit:contain;pointer-events:none;user-select:none;will-change:transform}
@media(max-width:380px){.photo-viewer-bottom{gap:5px;padding-left:8px;padding-right:8px}.photo-viewer-bottom .photo-viewer-btn{width:40px;height:40px}.photo-viewer-bottom .photo-viewer-reset{width:52px}}
