@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Manrope:wght@400;500;600;700;800&display=swap');
:root{color-scheme:dark;--ink:#f7f2ee;--muted:#c4bcb7;--dim:#988e86;--line:rgba(255,248,238,.12);--glass:rgba(246,233,220,.075);--warm:#dcc8b6;--ground:#24211f}
*{box-sizing:border-box}html,body{margin:0;min-height:100%;background:#161616;color:var(--ink);font-family:Manrope,"DM Sans",Arial,sans-serif}button,input,select,textarea{font:inherit}button{cursor:pointer}button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:2px solid #e2c5a4;outline-offset:3px}button:disabled{opacity:.45;cursor:default}
.shell{max-width:490px;min-height:100svh;margin:auto;position:relative;isolation:isolate;overflow:hidden;background:radial-gradient(ellipse 90% 56% at 66% 39%,rgba(155,121,92,.38),transparent 79%),radial-gradient(ellipse 80% 38% at 0% 18%,rgba(105,87,76,.38),transparent 78%),radial-gradient(ellipse 73% 38% at 80% 100%,rgba(66,60,58,.42),transparent 80%),#262321}
.shell:before{content:"";position:absolute;inset:0;pointer-events:none;z-index:-1;background:radial-gradient(ellipse 28% 38% at 95% 10%,rgba(254,226,176,.11),transparent 85%),linear-gradient(131deg,transparent 10%,rgba(254,232,191,.065) 34%,transparent 56%);filter:blur(19px)}
main{padding-bottom:124px;min-height:100svh}.loading{text-align:center;padding-top:42svh;font-size:12px;letter-spacing:.42em;color:#ded6cf}
.topbar{display:flex;align-items:center;justify-content:space-between;padding:calc(21px + env(safe-area-inset-top,0px)) 23px 0;min-height:76px;position:relative;z-index:6}.topbar .wordmark{font-size:12px;letter-spacing:.31em;font-weight:800;color:rgba(250,243,237,.67)}.topbar .actions{display:flex;gap:9px}.round-control{display:inline-flex;align-items:center;justify-content:center;width:38px;height:38px;border:1px solid rgba(255,246,232,.17);border-radius:50%;color:#f9f1eb;background:rgba(255,255,255,.045);backdrop-filter:blur(12px);transition:background .2s}
.round-control:active{background:rgba(255,255,255,.2)}
svg.ico{width:22px;height:22px;display:block;flex:none;stroke:currentColor;stroke-width:1.7;fill:none;stroke-linecap:round;stroke-linejoin:round}.round-control .ico{width:19px;height:19px}.section-head{padding:17px 25px 18px;display:flex;justify-content:space-between;align-items:center}.section-head h1{font-size:29px;letter-spacing:-1.3px;margin:0;font-weight:600}.section-head .secondary{font-size:12px;color:var(--muted);font-weight:500}
.today-stage{height:calc(100svh - 176px);min-height:565px;max-height:830px;position:relative;margin:0 3px}.today-stage:after{content:"";position:absolute;width:67%;height:48%;left:17%;top:26%;border-radius:50%;background:radial-gradient(circle,rgba(238,204,167,.1),transparent 73%);filter:blur(26px);pointer-events:none}
.avatar-disc{width:45.5%;aspect-ratio:1;max-width:237px;border-radius:50%;position:absolute;left:50%;top:49.5%;transform:translate(-50%,-50%);border:1px solid rgba(250,239,219,.34);padding:4px;background:radial-gradient(circle at 24% 12%,rgba(254,241,224,.4),rgba(231,219,204,.07) 56%,rgba(255,255,255,.02));box-shadow:0 13px 65px rgba(12,11,12,.22),inset 0 0 26px rgba(252,240,229,.16);z-index:2;overflow:hidden}
.avatar-disc img{height:100%;width:100%;border-radius:50%;object-fit:cover;filter:saturate(.85) contrast(.96)}.avatar-disc:after{content:"";position:absolute;inset:3px;border-radius:50%;pointer-events:none;box-shadow:inset 0 9px 22px rgba(245,224,205,.28),inset 0 -15px 23px rgba(55,48,44,.17)}
.activity-bubble{position:absolute;left:var(--x);top:var(--y);transform:translate(-50%,-50%);width:clamp(96px,26vw,124px);aspect-ratio:1;border-radius:50%;z-index:3;padding:4px;background:radial-gradient(circle at 27% 18%,rgba(255,255,255,.53),rgba(254,245,233,.06) 33%,rgba(255,255,255,.13) 72%,rgba(254,238,222,.56) 99%);border:1px solid rgba(244,232,218,.66);box-shadow:0 6px 21px rgba(0,0,0,.18),inset 1px 3px 7px rgba(255,255,255,.24),inset -3px -4px 8px rgba(0,0,0,.12);transition:transform .25s ease,opacity .27s ease,filter .2s ease}
.activity-bubble:before{content:"";position:absolute;inset:5px;border-radius:50%;background:radial-gradient(circle at 38% 34%,rgba(128,120,112,.23),rgba(34,33,33,.32) 68%,rgba(25,24,23,.21));backdrop-filter:blur(18px)}
.activity-bubble:after{content:"";pointer-events:none;position:absolute;left:16%;top:8%;width:44%;height:15%;border-radius:50%;background:rgba(255,255,255,.21);filter:blur(4px);transform:rotate(-18deg)}
.activity-bubble .bubble-content{position:relative;z-index:2;display:flex;flex-direction:column;justify-content:center;align-items:center;height:100%;color:#fcf5ee;text-shadow:0 1px 4px rgba(0,0,0,.35)}.activity-bubble .ico{height:25px;width:25px;margin-bottom:7px;stroke-width:1.65}.activity-bubble strong{font-size:12px;font-weight:700;line-height:1.2;max-width:89%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.activity-bubble small{font-size:11px;font-weight:500;color:rgba(255,251,246,.87);margin-top:3px}.activity-bubble:active{transform:translate(-50%,-50%) scale(.95)}.activity-bubble.popping{pointer-events:none;transform:translate(-50%,-50%) scale(1.26);filter:blur(7px);opacity:0}
.today-empty{position:absolute;left:15%;right:15%;bottom:12%;text-align:center;color:#dfd0c4;font-size:12px;line-height:1.9}
.bottom-nav{position:fixed;z-index:20;bottom:calc(14px + env(safe-area-inset-bottom,0px));left:50%;transform:translateX(-50%);width:calc(min(100%,490px) - 36px);height:72px;display:grid;grid-template-columns:repeat(4,1fr);align-items:center;border-radius:30px;background:rgba(33,32,32,.73);border:1px solid rgba(255,255,255,.095);box-shadow:0 14px 35px rgba(15,12,10,.29);backdrop-filter:blur(25px)}
.nav-btn{height:100%;border:0;background:none;color:rgba(252,247,242,.43);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:5px;position:relative}.nav-btn .ico{width:24px;height:24px;stroke-width:1.75}.nav-btn.active{color:#fffaf5}.nav-btn.active:after{content:"";width:4px;height:4px;border-radius:50%;background:#fff7ee;position:absolute;bottom:10px}
.cards{display:flex;flex-direction:column;gap:10px;padding:0 19px 23px}.agenda-card{width:100%;display:grid;grid-template-columns:54px 43px minmax(0,1fr) 22px;align-items:center;gap:12px;text-align:left;padding:19px 15px;min-height:111px;background:rgba(252,244,235,.078);border:1px solid rgba(255,250,240,.1);border-radius:22px;color:#fff5ef;backdrop-filter:blur(14px)}.agenda-card:active{background:rgba(255,255,255,.12)}.agenda-card .time{font-size:13px;font-weight:700;line-height:1.38}.agenda-card .tile{height:41px;width:41px;border-radius:15px;display:flex;align-items:center;justify-content:center;background:rgba(247,232,215,.105);border:1px solid rgba(255,255,255,.08)}.agenda-card .tile .ico{width:21px;height:21px}.agenda-title{font-size:16px;font-weight:700;line-height:1.35}.agenda-sub{font-size:11px;color:#c9bbb0;display:block;margin-top:4px;line-height:1.55}.agenda-card .arrow{opacity:.6}.day-note{padding:7px 26px 23px;color:#c5b5a9;font-size:12px}.add-card{width:100%;height:71px;border:1px dashed rgba(252,240,223,.24);background:rgba(255,255,255,.018);color:#edddcf;border-radius:20px;display:flex;align-items:center;gap:14px;padding:16px;text-align:left;font-size:13px}.add-card .ico{width:20px}
.section-stack{padding:0 18px 18px;display:flex;flex-direction:column;gap:17px}.life-panel{background:rgba(255,251,246,.058);border:1px solid rgba(255,255,255,.095);border-radius:24px;padding:17px 17px 15px}.panel-title{display:flex;align-items:center;gap:10px;margin-bottom:12px}.panel-title .ico{width:21px;height:21px}.panel-title h2{margin:0;font-size:17px;font-weight:650}.panel-title .spacer{flex:1}.mini-add{border:0;background:rgba(255,255,255,.075);color:#f8e9d9;border-radius:50%;height:31px;width:31px;display:flex;align-items:center;justify-content:center}.mini-add .ico{width:18px;height:18px}.life-entry{width:100%;display:flex;align-items:center;gap:10px;border:0;border-top:1px solid rgba(255,255,255,.065);background:none;color:var(--ink);padding:12px 0;text-align:left;min-height:49px}.entry-dot{width:28px;height:28px;display:grid;place-items:center;border-radius:50%;background:rgba(255,245,228,.095);flex:none}.entry-dot .ico{width:16px;height:16px}.life-entry span.entry-copy{min-width:0;flex:1}.entry-copy b{display:block;font-weight:600;font-size:13px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.entry-copy small{font-size:11px;color:#bdaea0;display:block;margin-top:2px}.life-entry .entry-arrow{width:16px;opacity:.58}.life-entry.done .entry-copy{opacity:.5;text-decoration:line-through}.empty-panel{font-size:12px;color:#b6a99e;padding:13px 0}
.profile-hero{padding:18px 23px 22px;display:flex;flex-direction:column;align-items:center;text-align:center}.profile-photo{position:relative;width:124px;height:124px;border-radius:50%;padding:4px;border:1px solid rgba(248,233,213,.47);background:rgba(255,255,255,.1)}.profile-photo img{width:100%;height:100%;border-radius:50%;object-fit:cover}.photo-edit{position:absolute;bottom:1px;right:-4px;background:#e3d6c9;color:#3c3430;width:30px;height:30px;border:0;border-radius:50%;display:grid;place-items:center}.photo-edit .ico{height:17px;width:17px}.profile-hero h1{font-size:24px;font-weight:650;letter-spacing:-.75px;margin:17px 0 4px}.profile-hero p{font-size:12px;color:#cabfb6;margin:0}.settings-panel{margin:0 19px 16px;background:rgba(255,248,235,.07);border:1px solid rgba(255,255,255,.1);border-radius:22px;padding:20px}.settings-panel h2{font-size:16px;font-weight:700;margin:0 0 16px}.field{display:flex;flex-direction:column;gap:7px;margin-bottom:14px}.field label{font-size:11px;letter-spacing:.05em;color:#d6cac1;font-weight:600}.field input,.field select,.field textarea{width:100%;border:1px solid rgba(255,255,255,.14);border-radius:12px;background:rgba(17,17,17,.32);color:#fff6f0;padding:12px 13px;outline:none;font-size:14px}.field select option{background:#302d2a}.field textarea{resize:vertical;min-height:80px}.field input::placeholder,.field textarea::placeholder{color:#8f8580}.inline-fields{display:grid;grid-template-columns:1fr 1fr;gap:11px}.primary{height:43px;border-radius:13px;border:0;background:#e8d9c9;color:#282522;padding:0 18px;font-weight:750;font-size:13px}.primary:active{background:white}.secondary-btn{min-height:41px;padding:0 15px;border-radius:13px;color:#ede2d5;border:1px solid rgba(255,255,255,.2);background:rgba(255,255,255,.045);font-weight:600}.danger{color:#ffc8c2;border-color:rgba(255,185,178,.3)}.wardrobe-item{display:flex;align-items:center;border-top:1px solid rgba(255,255,255,.08);padding:13px 0;gap:10px}.wardrobe-item .ico{width:22px}.wardrobe-item .copy{flex:1;font-size:13px}.wardrobe-item small{display:block;color:#beb0a5;font-size:11px}.subdued{font-size:12px;color:#b6a99c}
.overlay{position:fixed;z-index:50;inset:0;background:rgba(10,8,7,.65);backdrop-filter:blur(5px);display:flex;align-items:flex-end;justify-content:center}.sheet{position:relative;max-width:490px;width:100%;max-height:min(89svh,830px);overflow-y:auto;background:#302c29;border:1px solid rgba(255,255,255,.14);border-radius:26px 26px 0 0;padding:19px 22px calc(25px + env(safe-area-inset-bottom,0px));box-shadow:0 -15px 50px rgba(0,0,0,.23)}.sheet-handle{width:42px;height:4px;border-radius:9px;background:rgba(255,255,255,.22);margin:0 auto 18px}.sheet-title{font-size:21px;font-weight:700;margin:0 0 18px}.sheet-actions{display:flex;gap:9px;align-items:center;justify-content:space-between;margin-top:18px;flex-wrap:wrap}.sheet-actions>div{display:flex;gap:9px}.sheet .tiny{font-size:11px;color:#b7aaa2}.toast{position:fixed;z-index:70;bottom:110px;left:50%;transform:translateX(-50%);background:#efe3d8;color:#302821;border-radius:14px;padding:11px 17px;box-shadow:0 8px 30px #0b0b0b50;font-size:12px;white-space:nowrap;max-width:90vw;overflow:hidden;text-overflow:ellipsis}
.completed-entry{padding:11px 0;border-top:1px solid var(--line);display:flex;gap:8px;align-items:center;font-size:13px}.completed-entry span{flex:1}.completed-entry button{border:0;background:rgba(255,255,255,.07);color:#f8eee5;padding:7px 12px;border-radius:9px}
@media(min-width:520px){body{background:radial-gradient(circle at 48% 22%,#44403d,#1c1c1d 60%)}.shell{box-shadow:0 0 80px rgba(0,0,0,.26)}}
@media(max-width:350px){.activity-bubble{width:88px}.avatar-disc{width:45%}.activity-bubble .ico{height:21px;width:21px;margin-bottom:4px}.activity-bubble strong{font-size:11px}.activity-bubble small{font-size:10px}.agenda-card{gap:8px;grid-template-columns:49px 34px minmax(0,1fr) 16px;padding:14px 10px}.agenda-card .tile{width:34px;height:34px;border-radius:12px}}
@media(prefers-reduced-motion:reduce){.activity-bubble,.round-control{transition:none}}

/* Continuous, independent 3D bubble drift (profile remains stationary). */
.activity-bubble{transform:translate(calc(-50% + var(--float-x,0px)),calc(-50% + var(--float-y,0px)));will-change:transform;transition:opacity .26s ease,filter .26s ease,scale .2s ease}
.activity-bubble:active{transform:translate(calc(-50% + var(--float-x,0px)),calc(-50% + var(--float-y,0px))) scale(.96)}
.activity-bubble.popping{transform:translate(calc(-50% + var(--float-x,0px)),calc(-50% + var(--float-y,0px))) scale(1.28);opacity:0;filter:blur(7px)}
@media(prefers-reduced-motion:reduce){.activity-bubble{will-change:auto;transition:none}}

.outfit-detail{display:grid;gap:16px;padding-bottom:24px}.look-tabs{display:flex;gap:4px;width:max-content;background:#f1efec;border-radius:25px;padding:4px}.look-tabs button{border:0;border-radius:22px;background:transparent;padding:9px 24px}.look-tabs button.active{background:#252525;color:white}.look-preview{height:240px;background:#eeeae4;border-radius:18px;overflow:hidden;text-align:center}.look-preview img{height:100%;max-width:100%;object-fit:contain}.look-items{display:flex;gap:8px;overflow-x:auto}.look-item{min-width:110px;max-width:145px;background:#f6f4f1;border-radius:12px;padding:12px;display:grid;gap:6px}.look-item span{height:38px}.look-item b{font-size:12px}.look-item small{font-size:11px;color:#777}.outfit-detail h3{margin:8px 0 0;font-size:15px}.look-grid{display:grid;grid-template-columns:1fr 1fr;gap:9px}.look-grid button{border:1px solid #dedbd7;border-radius:12px;background:white;padding:16px 8px}.look-grid button.selected{border:2px solid #252525}.outfit-detail .primary{margin-top:12px}
