/* Mobile 0.3: desktop rules and artwork remain in aero.css. */
.mobile-desktop,.mobile-dock{display:none}
@media(max-width:700px){
  body.mobile-ready{background:#58c7ed;overflow-x:clip;min-width:0}
  body.mobile-ready:before{content:none}
  .mobile-ready #app{isolation:isolate;overflow:clip}
  .mobile-ready .workspace,.mobile-ready .desktop-dock{display:none}
  .mobile-ready .mobile-desktop{display:block;position:relative;padding:0 14px calc(110px + env(safe-area-inset-bottom));min-height:100svh;isolation:isolate}
  .mobile-landscape{position:fixed;inset:-30px 0 -100px;z-index:-3;background:#70c8ef url('/assets/mobile/landscape-v1.webp') center top/cover no-repeat;pointer-events:none;transform:translate3d(0,var(--far-y,0px),0)}
  .mobile-desktop:after{content:"";position:fixed;inset:40% 0 0;z-index:-1;pointer-events:none;background:linear-gradient(transparent,#064c7026 60%,#06385859)}
  .mobile-desktop:before{content:"";position:fixed;inset:47% 0 0;z-index:-2;pointer-events:none;background:radial-gradient(ellipse at 35% 35%,#e5ffff35,transparent 50%);opacity:.7;animation:lake-light 9s ease-in-out infinite}
  .mobile-ready .topbar{position:sticky;top:calc(7px + env(safe-area-inset-top));height:49px;margin:calc(8px + env(safe-area-inset-top)) 12px 0;padding:5px 10px;gap:6px;z-index:50;border-radius:12px;background:linear-gradient(120deg,#d9f7ff62,#83d9f242);backdrop-filter:blur(13px) saturate(1.2);-webkit-backdrop-filter:blur(13px) saturate(1.2);transition:background .2s}
  .mobile-ready.mobile-scrolled .topbar{background:linear-gradient(120deg,#d9f7ffbd,#9ce2f6a8)}
  .mobile-ready .brand{font-size:19px;letter-spacing:-.8px;line-height:1.2}
  .mobile-ready .brand small{font-size:6px;letter-spacing:2.4px;margin:0 0 0 1px}
  .mobile-ready .topbar .round,.mobile-ready .topbar .user-chip{width:44px;height:44px;display:grid;place-items:center;border:0;background:none;padding:3px}
  .mobile-ready .topbar .avatar{width:31px;height:31px}.mobile-ready .topbar .avatar .icon,.mobile-ready .topbar .round .icon{width:29px;height:29px}.mobile-ready .user-name{display:none}
  .mobile-greeting{position:relative;z-index:2;max-width:100%;width:max-content;margin:11px auto 0;padding:7px 13px 6px;text-align:center;border:1px solid #efffff29;border-radius:12px;background:#e9faff20;backdrop-filter:blur(3px);-webkit-backdrop-filter:blur(3px);text-shadow:0 1px 3px #efffffcc}
  .mobile-greeting h1{font-size:clamp(18px,5.2vw,23px);letter-spacing:-.7px;margin:0 0 3px;line-height:1.3;overflow-wrap:anywhere}
  .mobile-greeting p{font-size:11px;font-weight:800;margin:0;line-height:1.4}
  .mobile-scene{height:clamp(205px,31svh,280px);position:relative;margin:7px -4px 0;pointer-events:none;z-index:1}
  .island-composition{position:relative;width:min(100%,440px);height:100%;margin:auto;transform:translate3d(0,var(--island-y,0px),0);will-change:transform}
  .mobile-island{position:absolute;width:100%;height:auto;bottom:0;left:0;filter:drop-shadow(0 10px 8px #18596730)}
  .mobile-pet{position:absolute;left:50%;bottom:48%;width:35%;aspect-ratio:1;transform:translateX(-50%);padding:0;background:none;pointer-events:auto;touch-action:manipulation;border-radius:35%;min-width:95px;max-width:155px;filter:drop-shadow(0 2px 2px #0e614626)}
  .mobile-pet img,.mobile-pet canvas{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;pointer-events:none}
  .mobile-pet canvas{display:none}.mobile-pet.pet-ready canvas{display:block}.mobile-pet.pet-ready img{visibility:hidden}
  .pet-ground-shadow{position:absolute;top:46%;left:50%;width:25%;height:8px;border-radius:50%;background:#123d2a3b;filter:blur(4px);transform:translateX(-50%)}
  .mobile-whales{position:absolute;top:83px;left:0;right:0;height:230px;pointer-events:none;z-index:0;transform:translate3d(0,var(--whale-y,0px),0)}
  .whale{position:absolute;width:90px;height:auto;opacity:.82;animation:whale-drift 13s ease-in-out infinite;filter:drop-shadow(0 2px 2px #e8ffff72)}
  .whale-one{left:1%;top:-3px;rotate:-8deg}.whale-two{right:1%;top:-17px;width:73px;scale:-1 1;opacity:.78;animation-delay:-5s;animation-duration:17s}
  .mobile-info{position:relative;z-index:3;display:grid;gap:9px;margin:1px 0 17px}
  .mobile-day-row{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:9px}
  .mobile-card{border-radius:13px;padding:11px 12px;min-width:0;background:linear-gradient(135deg,#e7faffb8,#b2e2f58a);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);text-align:left;box-shadow:inset 0 1px #ffffffcf,0 3px 14px #054d7524}
  button.mobile-card{display:grid;position:relative;align-content:start;min-height:110px;gap:5px}
  .card-kicker{font-size:10px;letter-spacing:.3px;font-weight:800;color:#2d6176}
  .mobile-card strong{font-size:13px;line-height:1.25;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;padding-right:19px}
  .card-detail{font-size:10px;line-height:1.4;color:#315c73;overflow-wrap:anywhere}
  .agenda-card .icon{position:absolute;right:9px;top:8px;width:26px;height:26px;opacity:.9}
  .mobile-task-card{padding:11px 13px 6px}.mobile-task-card .panel-heading{margin-bottom:2px}.mobile-task-card h2{font-size:13px;letter-spacing:-.3px}.mobile-task-card .counter{font-size:10px}
  .mobile-task-card .task-row{font-size:12px;min-height:38px;padding:5px 0}.mobile-task-card .task-row span{display:-webkit-box;-webkit-line-clamp:1;-webkit-box-orient:vertical;overflow:hidden}
  .mobile-task-card .link-button{min-height:40px;font-size:11px;padding:8px 0;font-weight:800}
  .mobile-empty{font-size:11px;margin:5px 0 0;line-height:1.45;color:#355d70}
  .recent-section,.all-section{position:relative;z-index:3;margin-bottom:20px}
  .recent-section>h2,.all-section>h2{font-size:12px;letter-spacing:.1px;font-family:Nunito,sans-serif;font-weight:900;margin:0 0 8px 4px;color:#eafcff;text-shadow:0 1px 3px #12455e}
  .mobile-recent{display:grid;grid-template-columns:1fr 1.5fr 1fr;grid-template-rows:1fr 1fr;align-items:center;padding:10px 15px;gap:2px 16px;background:linear-gradient(135deg,#e8fcff35,#91d2e62b);border-color:#d5faff9c;backdrop-filter:blur(9px);-webkit-backdrop-filter:blur(9px)}
  .mobile-shortcut{background:none;display:flex;flex-direction:column;align-items:center;justify-content:center;min-width:0;min-height:72px;padding:3px;gap:2px;transition:transform .16s,filter .16s;border-radius:12px}
  .mobile-shortcut .icon{width:49px;height:49px}.mobile-shortcut>span:last-child{font-size:10px;font-weight:800;text-align:center;line-height:1.25;text-shadow:0 1px 2px #ffffffed;overflow-wrap:anywhere}
  .mobile-shortcut:active{transform:scale(.93);filter:brightness(1.1)}
  .mobile-recent .central-app{grid-column:2;grid-row:1/3;align-self:stretch;min-height:150px}.central-app .icon{width:79px;height:79px;filter:drop-shadow(0 0 9px #b4fffba8)}.central-app>span:last-child{font-size:13px}
  .mobile-recent .recent-side:nth-child(1){grid-column:1;grid-row:1}.mobile-recent .recent-side:nth-child(2){grid-column:1;grid-row:2}.mobile-recent .recent-side:nth-child(4){grid-column:3;grid-row:1}.mobile-recent .recent-side:nth-child(5){grid-column:3;grid-row:2}
  .mobile-all-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px 6px;padding:13px 8px;background:#d7f9ff24;backdrop-filter:blur(7px);-webkit-backdrop-filter:blur(7px);border-color:#d9faff78}
  .mobile-ready .mobile-dock,.mobile-ready.windows-open .mobile-dock{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));align-items:end;gap:0;position:fixed;z-index:1000;left:max(16px,env(safe-area-inset-left));right:max(16px,env(safe-area-inset-right));bottom:calc(14px + env(safe-area-inset-bottom));transform:none;width:auto;min-height:70px;padding:5px 8px 6px;border-radius:28px;background:linear-gradient(135deg,#ddfaff97,#89d6ec82);backdrop-filter:blur(22px);-webkit-backdrop-filter:blur(22px);box-shadow:inset 0 1px #fff,0 5px 25px #00405d52}
  .mobile-dock .dock-button{height:57px;padding:3px 0 0;display:flex;flex-direction:column;align-items:center;justify-content:end;gap:1px;border-radius:12px;min-width:0}
  .mobile-dock .dock-button .icon{width:36px;height:36px}.mobile-dock .dock-button:nth-child(3) .icon{width:44px;height:44px;filter:drop-shadow(0 0 6px #b5ffff)}
  .mobile-dock .dock-label,.mobile-dock .dock-button:hover .dock-label{display:block;position:static;transform:none;padding:0;border:0;background:none;font-size:8px;line-height:1.3;font-weight:900;color:#123f58;text-shadow:0 1px #efffff}
  .mobile-dock .dock-button.active{background:linear-gradient(#f4ffff70,#a2e8fc3d);box-shadow:inset 0 1px #fff8,0 0 9px #d8ffff7a}.mobile-dock .dock-button.active:after{content:none}.mobile-dock .dock-button:active{transform:scale(.92)}
  .mobile-ready .system-line{display:none}
  .mobile-ready .window,.mobile-ready .window.maximized{height:calc(100dvh - 94px - env(safe-area-inset-bottom))!important;top:0!important;padding-top:env(safe-area-inset-top);background:#c0e7f5;z-index:100}
  .mobile-ready .window-content{padding-bottom:25px}.mobile-ready .window-control.close{min-height:36px}.mobile-ready .window-buttons{top:8px}
  .launcher-shade{position:fixed;inset:0 0 calc(88px + env(safe-area-inset-bottom));background:#06395042;backdrop-filter:blur(2px);-webkit-backdrop-filter:blur(2px)}
  .launcher-shade[hidden]{display:none}
  .mobile-ready .window.mobile-launcher{inset:auto 12px calc(94px + env(safe-area-inset-bottom))!important;top:auto!important;left:12px!important;width:calc(100% - 24px)!important;height:auto!important;max-height:calc(100dvh - 170px - env(safe-area-inset-top) - env(safe-area-inset-bottom));min-height:0;padding:4px;border:1px solid #ebffffe0;border-radius:18px;background:linear-gradient(135deg,#e7faff8c,#a1d4ed85),url('/assets/mobile/landscape-v1.webp') center/cover;box-shadow:inset 0 1px #fff,0 16px 60px #002d5c73;backdrop-filter:blur(28px);-webkit-backdrop-filter:blur(28px);animation:launcher-in .22s ease-out;overflow:hidden}
  .mobile-launcher .titlebar{height:46px;margin:0;background:#e9faff4a;border:0;padding-left:10px;border-radius:13px 13px 0 0;cursor:default}
  .mobile-launcher .titlebar:before{content:"";position:absolute;top:4px;left:calc(50% - 15px);height:3px;width:30px;border-radius:3px;background:#efffffaa}
  .mobile-launcher .window-content{height:auto;max-height:calc(100dvh - 230px - env(safe-area-inset-top) - env(safe-area-inset-bottom));padding:8px 6px 14px;background:#dff7ff6b;backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px);border-radius:0 0 13px 13px}
  .launcher-app-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px 4px}.launcher-app-grid .mobile-shortcut .icon{width:48px;height:48px}
  .mobile-launcher .close{width:38px;min-width:38px}.mobile-launcher .mobile-back{font-size:0}.mobile-launcher .mobile-back:after{content:"×";font:22px Arial}
  .agenda-item{display:grid;gap:3px;padding:13px 0;border-bottom:1px solid #a4ccdd}.agenda-item strong{font-size:14px}.agenda-item span{font-size:12px}.today-agenda{margin-bottom:20px}
  .city-results{display:grid;gap:9px;margin-bottom:20px}.city-result{text-align:left;min-height:48px}.weather-credit{font-size:11px;margin-top:25px}
  .weather-symbol{position:absolute;right:11px;top:12px;width:24px;height:18px;filter:drop-shadow(0 1px 2px #8ac8e6)}
  .weather-symbol.sun{width:21px;height:21px;border-radius:50%;background:radial-gradient(circle at 30% 25%,#ffffde,#ffdc4b 55%,#e6a40c);box-shadow:0 0 7px #fff6a2}
  .weather-symbol.cloud,.weather-symbol.rain{border-radius:11px;background:linear-gradient(#fff,#c5ecf8);box-shadow:inset 0 1px #fff,0 2px 3px #5299bf66}
  .weather-symbol.cloud:before,.weather-symbol.rain:before{content:"";position:absolute;left:5px;top:-5px;width:14px;height:14px;border-radius:50%;background:linear-gradient(#fff,#d9f5ff)}
  .weather-symbol.rain:after{content:"";position:absolute;left:5px;top:19px;width:2px;height:5px;background:#359fda;box-shadow:6px 0 #359fda,12px 0 #359fda;rotate:12deg}
  .light-graphics .mobile-landscape,.light-graphics .island-composition,.light-graphics .mobile-whales{transform:none!important;will-change:auto}
  .light-graphics:before,.light-graphics .whale{animation:none!important}.light-graphics .glass{backdrop-filter:blur(5px);-webkit-backdrop-filter:blur(5px);background-color:#cbecf69e}
  .mobile-light-graphics .glass,.mobile-light-graphics .window-content,.mobile-light-graphics .launcher-shade{backdrop-filter:blur(5px)!important;-webkit-backdrop-filter:blur(5px)!important}
  .no-motion .mobile-desktop:before,.no-motion .whale{animation:none!important}
  .preview.mobile-ready #app{padding-top:23px}.preview.mobile-ready .topbar{margin-top:8px}.preview.mobile-ready .preview-line{font-size:8px;padding:4px;height:23px;overflow:hidden}.preview.mobile-ready.windows-open .preview-line{display:none}
}
@media(max-width:360px){.mobile-greeting h1{font-size:19px}.mobile-ready .mobile-desktop{padding-left:10px;padding-right:10px}.mobile-scene{height:31svh;min-height:205px}.mobile-card{padding:10px}.mobile-shortcut .icon{width:43px;height:43px}.mobile-recent{gap:1px 9px}.central-app .icon{width:70px;height:70px}.launcher-app-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.mobile-greeting{margin-top:9px}.mobile-day-row button.mobile-card{min-height:105px}}
@media(prefers-reduced-motion:reduce){.mobile-landscape,.island-composition,.mobile-whales{transform:none!important;will-change:auto}.whale,.mobile-desktop:before,.mobile-launcher{animation:none!important}}
@keyframes whale-drift{0%,100%{translate:0 0;rotate:-3deg}50%{translate:7px -9px;rotate:2deg}}
@keyframes lake-light{0%,100%{opacity:.3}50%{opacity:.85}}
@keyframes launcher-in{from{opacity:0;translate:0 12px;scale:.98}to{opacity:1;translate:0 0;scale:1}}
