.home-side { margin-bottom:8px; }
.home-screen { min-height:0; height:100%; overflow-y:auto; overscroll-behavior:contain; }
.home-wrap { width:min(1080px,100%); margin:0 auto; padding:clamp(25px,5vw,68px) clamp(20px,5vw,65px) 70px; }
.home-intro { max-width:640px; margin-bottom:35px; animation:home-arrive .45s ease-out both; }
.home-overline,.home-label,.home-date { color:var(--accent); font:11px/1.5 'Courier New',monospace; letter-spacing:.12em; text-transform:uppercase; }
.home-overline span { margin:0 7px; }
.home-date { margin-top:28px; color:var(--muted); }
.home-intro h1 { margin:10px 0 14px; color:var(--ink); font:600 clamp(38px,5.7vw,65px)/1.03 'Pixelify Sans',sans-serif; letter-spacing:-.025em; }
.home-intro>p:last-child { color:var(--muted); margin:0; max-width:45ch; font-size:15px; line-height:1.6; }
.home-grid { display:grid; grid-template-columns:1fr 1fr; gap:13px; }
.home-card { min-width:0; min-height:220px; padding:clamp(20px,3vw,28px); border:1px solid var(--line); border-radius:12px; background:var(--panel2); display:flex; flex-direction:column; align-items:flex-start; transition:transform .18s ease,border-color .18s ease; }
.home-card:hover { transform:translateY(-2px); border-color:rgba(231,199,109,.48); }
.home-card h2 { font:600 clamp(23px,2.5vw,32px)/1.12 'Pixelify Sans',sans-serif; margin:12px 0 9px; }
.home-card p { font-size:13px; line-height:1.55; color:var(--muted); max-width:34ch; margin:0 0 22px; }
.home-card button { background:transparent; border:0; color:var(--accent); min-height:44px; padding:8px 0; margin-top:auto; font-size:14px; font-weight:700; text-align:left; text-decoration:underline; text-decoration-color:transparent; text-underline-offset:4px; }
.home-card button:hover,.home-card button:focus-visible { text-decoration-color:currentColor; }
html[data-theme="day"] .home-card button { color:#465b32; }
.home-card button span { display:inline-block; margin-left:7px; transition:transform .2s; }
.home-card button:hover span { transform:translate(3px,-3px); }
.home-study { min-height:260px; background:linear-gradient(145deg,rgba(53,78,78,.92),var(--panel2)); }
html[data-theme="day"] .home-study { background:linear-gradient(145deg,#dce7cf,var(--panel2)); }
.home-study button { margin-top:auto; }
.home-admissions { background:linear-gradient(145deg,rgba(64,75,100,.92),var(--panel2)); }
html[data-theme="day"] .home-admissions { background:linear-gradient(145deg,#e4e7e0,var(--panel2)); }
.home-lami { position:relative; min-height:260px; overflow:hidden; flex-direction:row; padding-right:10px; }
.home-lami>div:first-child { position:relative; z-index:2; width:55%; display:flex; flex-direction:column; align-items:flex-start; }
.home-lami>.lami-sprite { position:absolute; width:53%; right:-1%; bottom:-3%; }
.home-diary,.home-chat { min-height:190px; }
.home-card button:focus-visible,.lami-wardrobe button:focus-visible { outline:2px solid var(--accent); outline-offset:4px; }
.lami-sprite { position:relative; aspect-ratio:1; isolation:isolate; }
.lami-sprite img { position:absolute; inset:0; width:100%; height:100%; object-fit:contain; image-rendering:pixelated; z-index:2; animation:lami-breathe 3s ease-in-out infinite; }
.lami-tail { position:absolute; left:13%; top:67%; width:30%; height:23%; z-index:1; transform-origin:90% 72%; background:#d08238; clip-path:polygon(100% 60%,82% 48%,65% 24%,47% 15%,27% 17%,15% 9%,7% 17%,5% 45%,14% 67%,28% 81%,54% 91%,75% 91%,100% 84%); animation:lami-tail-wag .55s steps(2,end) infinite alternate; }
.lami-tail::before { content:''; position:absolute; inset:0; background:#ffe5b9; clip-path:polygon(5% 8%,28% 12%,37% 25%,35% 55%,13% 53%); }
.lami-outfit { position:absolute; z-index:3; left:37%; top:62%; width:31%; height:19%; pointer-events:none; animation:lami-breathe 3s ease-in-out infinite; }
.lami-sprite[data-outfit='bandana'] .lami-outfit { background:#d0514e; clip-path:polygon(0 4%,15% 15%,50% 26%,85% 15%,100% 4%,94% 39%,50% 95%,6% 39%); }
.lami-sprite[data-outfit='scarf'] .lami-outfit { background:#4f86ad; clip-path:polygon(2% 10%,20% 17%,50% 23%,80% 17%,98% 10%,96% 37%,70% 43%,80% 100%,59% 100%,49% 45%,5% 37%); }
.lami-sprite[data-outfit='bow'] .lami-outfit { left:68%; top:20%; width:18%; height:13%; background:#e48aa0; clip-path:polygon(0 0,43% 30%,50% 22%,57% 30%,100% 0,94% 100%,56% 70%,50% 78%,43% 70%,6% 100%); }
.lami-sprite[data-mood='is-sleeping'] img { filter:brightness(.75) saturate(.8); animation:lami-sleep 3s ease-in-out infinite; }
.lami-sprite[data-mood='is-sleeping'] .lami-tail { animation:none; transform:rotate(-12deg); }
.lami-sprite[data-mood='is-hungry'] img { filter:saturate(.75); }
.lami-room-art { overflow:visible; background:linear-gradient(150deg,#234451,#182b39); }
.lami-room-art>.lami-sprite { width:100%; }
.lami-wardrobe { margin:24px 0 0; padding:20px; border:1px solid var(--line); border-radius:10px; background:var(--field); }
.lami-wardrobe h2 { font:600 23px 'Pixelify Sans',sans-serif; margin:5px 0; }
.lami-wardrobe p { color:var(--muted); font-size:13px; margin:0 0 13px; }
.lami-wardrobe-options { display:flex; flex-wrap:wrap; gap:8px; }
.lami-wardrobe-options button { min-height:40px; padding:8px 12px; border:1px solid var(--line); border-radius:6px; background:var(--panel2); color:var(--ink); font-size:12px; }
.lami-wardrobe-options button[aria-pressed='true'] { color:var(--accent-ink); background:var(--accent); border-color:var(--accent); }
.scene:not(.active) { background-image:none; }
@keyframes home-arrive { from { opacity:0;transform:translateY(8px); } to { opacity:1;transform:translateY(0); } }
@keyframes lami-breathe { 0%,100% { transform:translateY(0); } 50% { transform:translateY(-2%); } }
@keyframes lami-sleep { 0%,100% { transform:scale(1); } 50% { transform:scale(.98); } }
@keyframes lami-tail-wag { from { transform:rotate(-18deg); } to { transform:rotate(21deg); } }
@media(max-width:680px) { .home-wrap { padding:28px 17px 50px; } .home-grid { grid-template-columns:1fr; } .home-card { min-height:190px; } .home-lami { min-height:230px; } .home-intro { margin-bottom:25px; } .home-date { margin-top:18px; } }
@media(prefers-reduced-motion:reduce) { .home-intro,.lami-sprite img,.lami-tail,.lami-outfit { animation:none !important; } .home-card,.home-card button span { transition:none; } .home-card:hover { transform:none; } .home-card button:hover span { transform:none; } }

/* Lami's wardrobe */
.lami-costume-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(116px,1fr)); gap:10px; }
.lami-costume { position:relative; min-width:0; display:flex; flex-direction:column; overflow:hidden; text-align:left; color:var(--ink); border:1px solid var(--line); border-radius:9px; background:var(--panel2); padding:0; transition:transform .18s ease,border-color .18s ease; }
.lami-costume:hover { transform:translateY(-2px); border-color:rgba(231,199,109,.55); }
.lami-costume[aria-pressed='true'] { border-color:var(--accent); box-shadow:0 0 0 1px var(--accent); }
.lami-costume-preview { width:100%; aspect-ratio:1.1; display:flex; align-items:center; justify-content:center; background:rgba(104,155,131,.14); overflow:hidden; }
.lami-costume-preview img { width:100%; height:100%; object-fit:contain; image-rendering:pixelated; transition:transform .2s ease; }
.lami-costume:hover .lami-costume-preview img { transform:scale(1.06); }
.lami-costume-copy { display:block; padding:10px 11px 12px; }
.lami-costume-copy strong,.lami-costume-copy small { display:block; }
.lami-costume-copy strong { font:600 16px/1.15 'Pixelify Sans',sans-serif; }
.lami-costume-copy small { margin-top:4px; color:var(--muted); font-size:11px; line-height:1.3; }
.lami-costume-check { position:absolute; top:7px; right:7px; width:21px; height:21px; display:none; place-items:center; background:var(--accent); color:var(--accent-ink); border-radius:50%; font-size:12px; font-weight:bold; }
.lami-costume[aria-pressed='true'] .lami-costume-check { display:grid; }
.lami-accessories { margin-top:17px; }
.lami-accessories summary { cursor:pointer; color:var(--muted); font-size:13px; padding:6px 0; }
.lami-accessories .lami-wardrobe-options { margin-top:9px; }
.lami-sprite[data-outfit='chef']:not([data-mood='is-sleeping']) img { animation:lami-chef-move 2.7s ease-in-out infinite; }
.lami-sprite[data-outfit='bandit']:not([data-mood='is-sleeping']) img { animation:lami-bandit-move 3.2s ease-in-out infinite; }
.lami-sprite[data-outfit='pajamas']:not([data-mood='is-sleeping']) img { animation:lami-pajamas-move 3.4s ease-in-out infinite; }
.lami-sprite[data-outfit='explorer']:not([data-mood='is-sleeping']) img { animation:lami-explorer-move 2.5s ease-in-out infinite; }
@keyframes lami-chef-move { 0%,100% { transform:translateY(0) rotate(0); } 50% { transform:translateY(-2%) rotate(1.5deg); } }
@keyframes lami-bandit-move { 0%,100% { transform:rotate(-1.5deg); } 50% { transform:translateY(-1%) rotate(1.5deg); } }
@keyframes lami-pajamas-move { 0%,100% { transform:translateY(0); } 50% { transform:translateY(-1.3%); } }
@keyframes lami-explorer-move { 0%,100% { transform:rotate(0); } 40% { transform:translateY(-2%) rotate(-2deg); } 70% { transform:rotate(1deg); } }
@media(max-width:480px) { .lami-costume-grid { grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media(prefers-reduced-motion:reduce) { .lami-sprite[data-outfit] img { animation:none !important; } .lami-costume,.lami-costume-preview img { transition:none; } }

/* Visible keyboard focus throughout the workspace. */
button:focus-visible, select:focus-visible, input:focus-visible, textarea:focus-visible, summary:focus-visible, a:focus-visible {
  outline: 3px solid var(--accent);
  outline-offset: 3px;
}

.auth-mail-steps { text-align:left; padding:14px 16px 14px 36px; margin:0 0 18px; border:1px solid var(--line); border-radius:9px; background:var(--field); color:var(--ink); font:14px/1.6 system-ui,sans-serif; }
.auth-mail-steps[hidden] { display:none; }
.auth-mail-steps li + li { margin-top:7px; }
