
  :root{
    --wood-dark:#5a3a26;
    --wood:#7a4f33;
    --wood-light:#9c6b45;
    --cream:#f4e4cb;
    --cream-soft:#efd9b8;
    --amber:#e8a14b;
    --amber-deep:#c9772b;
    --rust:#b5512f;
    --sage:#7d8a5c;
    --ink:#3a2418;
    --glow:#ffd591;
    --shadow:rgba(58,36,24,.35);
  }
  *{margin:0;padding:0;box-sizing:border-box}
  body{
    font-family:'Nunito',sans-serif;
    background:radial-gradient(ellipse at 50% 0%, #6b4630 0%, #3d2719 70%);
    height:100vh;height:100dvh;color:var(--ink);
    display:flex;flex-direction:column;align-items:center;justify-content:center;
    padding:10px 16px 14px;overflow:hidden;   /* single static phone — no page scroll outside the frame */
  }

  /* APP — the phone frame. Grows to fill the desktop height; overlays live inside it. */
  .app{width:100%;max-width:430px;height:min(1000px,calc(100vh - 56px));height:min(1000px,calc(100dvh - 56px));display:flex;flex-direction:column;background:linear-gradient(180deg,#fbf2e2 0%,#f4e4cb 100%);border-radius:36px;overflow:hidden;box-shadow:0 30px 70px rgba(0,0,0,.5),0 0 0 10px #2c1c12,0 0 0 12px #4a3120;position:relative;}

  /* MOBILE — the app IS the phone: full screen, no frame, no cut-off bottom.
     100dvh tracks the real visible viewport (URL bar shown/hidden); safe-area pads the nav. */
  @media (max-width:520px), (pointer:coarse) and (max-width:820px){
    body{padding:0;}
    .app{max-width:none;height:100vh;height:100dvh;border-radius:0;box-shadow:none;}
    .nav{padding-bottom:calc(16px + env(safe-area-inset-bottom,0px));}
    .modal{max-width:none;}
  }

  /* WORK IN PROGRESS BADGE */
  .wip-badge{position:absolute;top:8px;left:50%;transform:translateX(-50%);background:rgba(44,28,18,.88);color:var(--glow);font-size:9px;font-weight:800;padding:3px 10px;border-radius:12px;z-index:120;letter-spacing:.4px;box-shadow:0 4px 12px rgba(0,0,0,.45);cursor:pointer;white-space:nowrap;}
  .wip-badge:hover{background:rgba(44,28,18,.96)}
  .fb-tabs{display:flex;gap:8px;margin-bottom:14px}
  .fb-tab{flex:1;padding:9px;border:2px solid var(--cream-soft);border-radius:12px;background:#fff;font-family:'Nunito',sans-serif;font-weight:800;font-size:13px;color:var(--wood-light);cursor:pointer}
  .fb-tab.active{border-color:var(--amber);color:var(--amber-deep);background:rgba(232,161,75,.12)}
  .wip-list{margin:6px 0 14px}
  .wip-list p{font-size:12.5px;color:var(--wood-dark);font-weight:600;line-height:1.5;margin-bottom:8px}
  .wip-list b{color:var(--amber-deep)}

  /* TOP BAR */
  .topbar{display:flex;flex-shrink:0;align-items:center;justify-content:space-between;padding:30px 20px 12px;position:relative;z-index:5;}
  .tb-left{display:flex;align-items:center;gap:11px;min-width:0;}
  /* the character as a round "profile photo" — click to customize */
  .pfp{position:relative;width:44px;height:44px;border-radius:50%;border:2.5px solid #fff;background:radial-gradient(circle at 50% 32%, #f6e3c4, #d6ae7e);overflow:hidden;cursor:pointer;box-shadow:0 3px 8px rgba(0,0,0,.28);padding:0;flex-shrink:0;transition:transform .15s}
  .pfp:hover{transform:scale(1.06)}
  .pfp .avatar{position:absolute;left:50%;top:5px;bottom:auto;width:80px;height:90px;transform:translateX(-50%) scale(0.7);transform-origin:top center}
  .greeting p{font-size:12.5px;color:var(--wood-light);font-weight:700;margin-top:3px;}
  .streak{background:linear-gradient(135deg,var(--amber),var(--amber-deep));color:#fff;border-radius:16px;padding:8px 13px;font-weight:800;font-size:13px;display:flex;align-items:center;gap:5px;box-shadow:0 5px 14px rgba(201,119,43,.4);cursor:default;}
  .account-chip{background:rgba(255,255,255,.65);color:var(--wood-dark);border:1.5px solid var(--cream-soft);border-radius:14px;padding:5px 11px;font-family:'Nunito',sans-serif;font-weight:800;font-size:11px;cursor:pointer;display:flex;align-items:center;gap:4px;white-space:nowrap;max-width:150px;overflow:hidden;text-overflow:ellipsis;transition:transform .15s;}
  .account-chip:hover{transform:translateY(-1px)}
  .account-chip.synced{background:linear-gradient(135deg,#7ea86b,#5f8a52);color:#fff;border-color:transparent}
  .auth-input{width:100%;padding:11px 14px;border:2px solid var(--cream-soft);border-radius:12px;font-family:'Nunito',sans-serif;font-size:14px;font-weight:600;color:var(--ink);background:white;outline:none;margin-bottom:10px;box-sizing:border-box}
  .auth-input:focus{border-color:var(--amber)}
  .auth-note{font-size:12px;color:var(--wood-light);line-height:1.5;margin:4px 0 14px}
  .auth-row{display:flex;align-items:center;gap:8px;font-size:13px;font-weight:700;color:var(--wood-dark);margin-bottom:12px}
  .auth-dot{width:9px;height:9px;border-radius:50%;background:#bbb;flex-shrink:0}
  .auth-dot.on{background:#5f8a52}
  .auth-label{display:block;font-size:12px;font-weight:800;color:var(--wood-dark);margin:2px 0 5px}
  .handle-row{display:flex;align-items:stretch}
  .handle-at{display:flex;align-items:center;padding:0 11px;background:var(--cream-soft);border:2px solid var(--cream-soft);border-right:none;border-radius:12px 0 0 12px;font-weight:800;color:var(--wood-light)}
  .handle-input{flex:1;width:auto !important;border-radius:0 12px 12px 0 !important;border-left:none;margin-bottom:0 !important}
  /* review (public comment) */
  .review-section{margin-top:14px}
  .rv-pub{font-size:9px;font-weight:800;color:#5a6b8c;background:rgba(90,107,140,.14);padding:1px 6px;border-radius:7px;margin-left:6px;text-transform:none;letter-spacing:0}
  .rv-field{width:100%;box-sizing:border-box;min-height:64px;resize:vertical;padding:11px 13px;border:2px solid var(--cream-soft);border-radius:12px;font-family:'Nunito',sans-serif;font-size:13px;font-weight:600;color:var(--ink);background:white;outline:none}
  .rv-field:focus{border-color:var(--amber)}
  .rv-foot{display:flex;align-items:center;justify-content:space-between;margin-top:7px}
  .rv-count{font-size:11px;font-weight:700;color:var(--wood-light)}
  .rv-signin{padding:13px;border:2px dashed var(--cream-soft);border-radius:12px;text-align:center;font-size:12.5px;font-weight:800;color:var(--amber-deep);cursor:pointer;transition:border-color .15s,background .15s}
  .rv-signin:hover{border-color:var(--amber);background:rgba(232,161,75,.08)}
  .rate-nudge{font-size:10px;font-weight:800;color:var(--amber-deep);opacity:.85}
  /* privacy toggles (account) */
  .pv-row{display:flex;align-items:center;justify-content:space-between;padding:9px 0;font-size:13px;font-weight:700;color:var(--wood-dark)}
  .pv-row.sub{padding:7px 0 7px 12px;font-size:12px;color:var(--wood-light)}
  .pv-toggle{width:42px;height:24px;border-radius:14px;border:none;background:#d8c4a4;cursor:pointer;position:relative;transition:background .2s;flex-shrink:0}
  .pv-toggle.on{background:#5f8a52}
  .pv-toggle span{position:absolute;top:3px;left:3px;width:18px;height:18px;border-radius:50%;background:#fff;transition:left .2s;box-shadow:0 1px 3px rgba(0,0,0,.3)}
  .pv-toggle.on span{left:21px}
  .pv-link{font-size:12px;color:var(--wood-light);font-weight:700;margin-top:8px;word-break:break-all}
  .pv-link a{color:var(--amber-deep)}
  .pv-link button{margin-left:6px;padding:4px 10px;border:none;border-radius:10px;background:var(--amber);color:#fff;font-weight:800;font-size:11px;cursor:pointer}
  /* PUBLIC SHELF (read-only) */
  .public-view{position:absolute;inset:0;z-index:150;background:linear-gradient(180deg,#fbf2e2,#f4e4cb);overflow-y:auto;padding:24px 18px 30px;display:none}
  .pub-head{text-align:center;margin-bottom:16px}
  .pub-title{font-family:'Fraunces',serif;font-size:22px;font-weight:700;color:var(--wood-dark);line-height:1.15}
  .pub-handle{font-size:13px;font-weight:800;color:var(--amber-deep);margin-top:3px}
  .pub-card{display:flex;justify-content:space-around;background:#fff;border-radius:16px;padding:14px;box-shadow:0 4px 14px var(--shadow);margin-bottom:18px}
  .pub-card div{display:flex;flex-direction:column;align-items:center}
  .pub-card b{font-family:'Fraunces',serif;font-size:20px;color:var(--wood-dark)}
  .pub-card span{font-size:9.5px;font-weight:800;color:var(--wood-light);text-transform:uppercase;letter-spacing:.4px;margin-top:2px}
  .pub-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}
  .pub-book{display:flex;flex-direction:column}
  .pub-cover{width:100%;aspect-ratio:2/3;border-radius:8px;overflow:hidden;background:linear-gradient(135deg,var(--wood-light),var(--wood-dark));box-shadow:0 4px 12px var(--shadow);display:flex;align-items:center;justify-content:center;font-size:28px}
  .pub-cover img{width:100%;height:100%;object-fit:cover}
  .pub-bt{font-size:11px;font-weight:700;color:var(--ink);margin-top:5px;line-height:1.2}
  .pub-rev{font-size:10px;color:var(--wood-light);font-style:italic;margin-top:3px;line-height:1.3}
  .pub-foot{text-align:center;margin-top:26px}
  .pub-foot a{color:var(--amber-deep);font-weight:800;font-size:13px;text-decoration:none}
  .pub-msg,.pub-loading{text-align:center;padding:46px 20px;color:var(--wood-light);font-weight:700;line-height:1.7}
  .pub-msg a{color:var(--amber-deep);display:inline-block;margin-top:10px;font-weight:800}

  /* SCENE */
  .scroll-wrap{flex:1 1 auto;min-height:0;overflow-y:auto;}
  /* height matches .scene-lib (476px) so switching environments never changes the
     page height / scrollbar. Living-room props are anchored top & bottom, so the
     extra space just becomes a little more wall. */
  .scene{position:relative;height:476px;background:radial-gradient(ellipse 60% 45% at 50% 38%,rgba(255,213,145,.55),transparent 70%),linear-gradient(180deg,#c89968 0%,#a9794d 55%,#8a5d39 100%);overflow:hidden;}
  .scene::before{content:"";position:absolute;inset:0;background:radial-gradient(circle at 78% 22%,rgba(255,220,150,.6),transparent 38%);pointer-events:none;}

  .window{position:absolute;top:26px;left:24px;width:78px;height:96px;background:linear-gradient(180deg,#f3b562,#d98742 60%,#7a4a55);border-radius:40px 40px 6px 6px;box-shadow:0 0 24px rgba(255,200,120,.5),inset 0 0 0 5px #6b4327;overflow:hidden;}
  .window::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,transparent 47%,#6b4327 47%,#6b4327 53%,transparent 53%);}
  .moon{position:absolute;top:14px;right:14px;width:18px;height:18px;border-radius:50%;background:#fff3da;box-shadow:0 0 14px #fff3da;transition:opacity .6s;}
  /* window reflects the time of day */
  .window.tod-morning{background:linear-gradient(180deg,#bfe6f2,#eadcb6 72%,#b98f5f)}
  .window.tod-afternoon{background:linear-gradient(180deg,#86c4ea,#d4e6c6 62%,#b08a5a)}
  .window.tod-evening{background:linear-gradient(180deg,#f3b562,#d98742 60%,#7a4a55)}
  .window.tod-night{background:linear-gradient(180deg,#16204a,#262c55 55%,#3a2f48)}
  .window.tod-morning .moon,.window.tod-afternoon .moon{opacity:0}
  .window-stars{position:absolute;inset:0;opacity:0;transition:opacity .6s;pointer-events:none;z-index:0}
  .window.tod-night .window-stars{opacity:1}
  .window-stars i{position:absolute;width:2px;height:2px;border-radius:50%;background:#fff;box-shadow:0 0 3px #fff;animation:twinkle 3s ease-in-out infinite}
  .window-stars i:nth-child(even){animation-delay:1.2s}
  @keyframes twinkle{0%,100%{opacity:.35}50%{opacity:1}}
  /* seasonal weather inside the window — pure CSS particles (no assets) */
  .window-fx{position:absolute;inset:0;z-index:1;pointer-events:none;display:none;overflow:hidden;}
  .fx-p{position:absolute;will-change:transform,opacity;}
  /* falling particles (snow / petals / leaves) reuse one keyframe with per-particle vars */
  .fx-p.snow,.fx-p.petal,.fx-p.leaf{top:-10px;animation-name:fxFall;animation-timing-function:linear;animation-iteration-count:infinite;}
  .fx-p.snow{background:#fff;border-radius:50%;opacity:.9;}
  .fx-p.petal{width:6px;height:5px;background:#f3b8c8;border-radius:60% 0 60% 0;opacity:.85;}
  .fx-p.leaf{width:7px;height:6px;border-radius:0 70% 0 70%;opacity:.9;}
  @keyframes fxFall{0%{transform:translate(0,-10px) rotate(0);opacity:0}12%{opacity:.95}100%{transform:translate(var(--drift,4px),106px) rotate(var(--spin,0deg));opacity:.25}}
  /* fireflies: a few small glowing dots that drift and blink */
  .fx-p.fly{width:4px;height:4px;border-radius:50%;background:#ffe79a;box-shadow:0 0 6px 2px rgba(255,224,138,.75);animation-name:fxFly;animation-timing-function:ease-in-out;animation-iteration-count:infinite;}
  @keyframes fxFly{0%{transform:translate(0,0);opacity:.15}25%{opacity:1}50%{transform:translate(var(--dx,8px),var(--dy,-6px));opacity:.5}75%{opacity:1}100%{transform:translate(0,0);opacity:.15}}
  @media (prefers-reduced-motion: reduce){ .fx-p{animation:none !important;opacity:.5} }

  .plant{position:absolute;top:0;right:60px;width:54px;height:70px;}
  .plant .pot{position:absolute;top:38px;left:12px;width:30px;height:26px;background:var(--rust);border-radius:0 0 12px 12px;}
  .leaf{position:absolute;width:14px;height:30px;background:var(--sage);border-radius:50% 50% 50% 50%/60% 60% 40% 40%;transform-origin:bottom center;top:18px;}
  .leaf:nth-child(1){left:8px;transform:rotate(-30deg)}
  .leaf:nth-child(2){left:20px;transform:rotate(0deg)}
  .leaf:nth-child(3){left:32px;transform:rotate(30deg)}

  /* BOOKSHELF */
  .shelves{position:absolute;top:54px;left:50%;transform:translateX(-50%);width:300px;}
  .shelf-row{position:relative;height:74px;margin-bottom:6px;cursor:pointer;transition:transform .25s ease;pointer-events:none;}
  .shelf-row:hover{transform:translateY(-3px)}
  /* only the shelf line, the books and the label are clickable — empty wall space (and the area over the window) is not */
  .shelf-plank,.books-line,.shelf-tag{pointer-events:auto;}
  /* top shelf: keep the clickable line and books clear of the window on the left */
  .shelf-row.top .shelf-plank{left:74px;}
  .shelf-row.top .books-line{left:82px;}
  .shelf-plank{position:absolute;bottom:0;left:0;right:0;height:11px;background:linear-gradient(180deg,var(--wood-light),var(--wood-dark));border-radius:3px;box-shadow:0 5px 10px var(--shadow);}
  .books-line{position:absolute;bottom:11px;left:8px;right:8px;height:60px;display:flex;align-items:flex-end;gap:3px;padding:0 6px;overflow:hidden;}
  /* books shown as SPINES (the side of the book), like a real shelf */
  .book{flex:0 0 auto;width:18px;border-radius:2px 2px 1px 1px;box-shadow:inset -3px 0 4px rgba(0,0,0,.3),inset 3px 0 3px rgba(255,255,255,.14),0 2px 4px rgba(0,0,0,.22);transition:transform .2s ease,filter .2s ease;position:relative;overflow:hidden;display:flex;align-items:center;justify-content:center;}
  .book .spine-title{font-family:'Fraunces',serif;font-weight:600;line-height:1;color:rgba(255,255,255,.93);writing-mode:vertical-rl;transform:rotate(180deg);white-space:nowrap;max-height:96%;overflow:hidden;text-shadow:0 1px 1px rgba(0,0,0,.45);letter-spacing:.2px;pointer-events:none;}
  .book .band{position:absolute;left:0;right:0;height:2px;background:rgba(255,255,255,.22);pointer-events:none}
  .book .band.t{top:6px}.book .band.b{bottom:6px}
  .shelf-row:hover .book{filter:brightness(1.08)}
  .book.tilt{transform:rotate(-8deg) translateY(2px);transform-origin:bottom}
  .cover-ph{line-height:1}
  .shelf-tag{position:absolute;bottom:1px;top:auto;right:-6px;background:var(--cream);color:var(--wood-dark);font-size:10.5px;font-weight:800;padding:3px 9px;border-radius:10px;box-shadow:0 3px 8px var(--shadow);z-index:3;border:1.5px solid var(--amber);}
  .shelf-tag b{color:var(--amber-deep)}
  .slot{width:13px;height:0;border-bottom:2px dashed rgba(255,255,255,.35);align-self:flex-end;margin-bottom:3px;}

  /* NOOK */
  .nook{position:absolute;bottom:0;left:50%;transform:translateX(-50%);width:230px;height:150px;}
  .rug{position:absolute;bottom:6px;left:50%;transform:translateX(-50%);width:210px;height:40px;border-radius:50%;background:radial-gradient(ellipse,#b5512f 0%,#8f3f24 70%,transparent 72%);opacity:.85;}
  .lamp{position:absolute;bottom:30px;left:6px;width:42px;height:120px;}
  .lamp .shade{position:absolute;top:0;left:2px;width:38px;height:26px;background:linear-gradient(180deg,#ffd591,#e8a14b);border-radius:18px 18px 6px 6px;box-shadow:0 0 30px 6px rgba(255,210,140,.7);}
  .lamp .pole{position:absolute;top:24px;left:18px;width:5px;height:86px;background:var(--wood-dark);border-radius:3px}
  .lamp .base{position:absolute;bottom:0;left:8px;width:26px;height:8px;background:var(--wood-dark);border-radius:50%}
  .chair{position:absolute;bottom:22px;left:50%;transform:translateX(-35%);width:130px;height:110px;}
  .chair .back{position:absolute;bottom:18px;left:14px;width:96px;height:88px;background:linear-gradient(180deg,#c2632f,#9c4a22);border-radius:46px 46px 18px 18px;box-shadow:inset 0 6px 12px rgba(255,255,255,.15),0 8px 18px var(--shadow);}
  .chair .seat{position:absolute;bottom:6px;left:6px;width:118px;height:40px;background:#a9521f;border-radius:24px;box-shadow:0 8px 16px var(--shadow);}
  .chair .arm-l{position:absolute;bottom:14px;left:0;width:26px;height:52px;background:#b5582a;border-radius:18px;}
  .chair .arm-r{position:absolute;bottom:14px;right:6px;width:26px;height:52px;background:#9c4a22;border-radius:18px;}

  /* AVATAR */
  .avatar{position:absolute;bottom:40px;left:50%;transform:translateX(-52%);width:80px;height:90px;z-index:2;}
  .av-hair-back{position:absolute;top:6px;left:14px;width:52px;height:46px;border-radius:50% 50% 40% 40%;background:var(--hair,#5a3320);transition:all .3s;}
  .av-head{position:absolute;top:10px;left:20px;width:40px;height:40px;border-radius:50%;background:var(--skin,#f0c49b);}
  .av-hair-front{position:absolute;top:6px;left:17px;width:46px;height:24px;border-radius:50% 50% 20% 20%;background:var(--hair,#5a3320);transition:all .3s;}
  .av-cheek{position:absolute;top:30px;width:7px;height:5px;border-radius:50%;background:#e89a8a;opacity:.6;transition:opacity .3s;}
  .av-cheek.l{left:24px}.av-cheek.r{right:22px}
  .av-eye{position:absolute;top:26px;width:4px;height:4px;border-radius:50%;background:#3a2418}
  .av-eye.l{left:29px}.av-eye.r{right:27px}
  .av-body{position:absolute;bottom:6px;left:14px;width:52px;height:46px;border-radius:26px 26px 14px 14px;background:var(--outfit,#7d8a5c);box-shadow:inset 0 4px 8px rgba(255,255,255,.12);transition:all .3s;}
  .av-book{position:absolute;bottom:18px;left:50%;transform:translateX(-50%);width:42px;height:26px;background:#f4e4cb;border-radius:3px;box-shadow:0 3px 6px rgba(0,0,0,.25);}
  /* reward for importing your library: the held book becomes a slim e-reader (no brand) */
  .avatar.has-ereader .av-book{background:#33343c;border-radius:4px;box-shadow:0 3px 6px rgba(0,0,0,.35)}
  .avatar.has-ereader .av-book::after{content:'';position:absolute;inset:3px 4px;background:linear-gradient(180deg,#d6ebf2,#bcdae6);border-radius:2px}
  .av-book::before{content:"";position:absolute;top:0;left:50%;width:2px;height:100%;background:#c9a877;transform:translateX(-50%)}
  .blanket{position:absolute;bottom:0;left:8px;width:64px;height:24px;background:repeating-linear-gradient(45deg,#d98742,#d98742 6px,#c2632f 6px,#c2632f 12px);border-radius:14px;opacity:.95}
  .zzz{position:absolute;top:0;right:6px;color:var(--glow);font-size:13px;font-weight:800;opacity:.0;animation:float 3s ease-in-out infinite}
  @keyframes float{0%{opacity:0;transform:translateY(6px)}40%{opacity:.9}100%{opacity:0;transform:translateY(-14px)}}

  /* === HAIRSTYLES (one slot, masc + fem options) === */
  /* long — feminine (default) */
  [data-hairstyle="long"] .av-hair-back{top:6px;left:12px;width:56px;height:56px;border-radius:46% 46% 42% 42%;}
  [data-hairstyle="long"] .av-hair-front{top:6px;left:17px;width:46px;height:24px;border-radius:50% 50% 20% 20%;}

  /* bob — feminine */
  [data-hairstyle="bob"] .av-hair-back{top:8px;left:14px;width:52px;height:40px;border-radius:46% 46% 38% 38%;}
  [data-hairstyle="bob"] .av-hair-front{top:6px;left:17px;width:46px;height:23px;border-radius:50% 50% 30% 30%;}

  /* ponytail — feminine */
  [data-hairstyle="pony"] .av-hair-back{top:10px;left:18px;width:44px;height:28px;border-radius:42% 42% 30% 30%;}
  [data-hairstyle="pony"] .av-hair-back::after{content:"";position:absolute;top:-1px;right:-9px;width:12px;height:36px;background:var(--hair,#5a3320);border-radius:8px;transform:rotate(10deg);}
  [data-hairstyle="pony"] .av-hair-front{top:6px;left:18px;width:44px;height:20px;border-radius:50% 50% 25% 25%;}

  /* short — masculine */
  [data-hairstyle="short"] .av-hair-back{top:12px;left:18px;width:44px;height:26px;border-radius:40% 40% 12% 12%;}
  [data-hairstyle="short"] .av-hair-front{top:8px;left:19px;width:42px;height:16px;border-radius:42% 42% 0 0;}

  /* buzz — masculine */
  [data-hairstyle="buzz"] .av-hair-back{top:14px;left:20px;width:40px;height:18px;border-radius:38% 38% 8% 8%;}
  [data-hairstyle="buzz"] .av-hair-front{top:10px;left:20px;width:40px;height:11px;border-radius:40% 40% 0 0;opacity:.97;}

  /* quiff — masculine */
  [data-hairstyle="quiff"] .av-hair-back{top:12px;left:19px;width:42px;height:24px;border-radius:40% 40% 10% 10%;}
  [data-hairstyle="quiff"] .av-hair-front{top:2px;left:20px;width:40px;height:24px;border-radius:50% 50% 0 0;}

  /* Hair accessory: none / hat / bow */
  .av-acc{position:absolute;pointer-events:none;z-index:5;transition:all .3s;}
  .av-acc[data-type="none"]{display:none}
  /* hat: brim + crown */
  .av-acc[data-type="hat"]{top:0;left:14px;width:50px;height:4px;background:var(--acc-color,#7a4f33);border-radius:3px;z-index:6;}
  .av-acc[data-type="hat"]::before{content:"";position:absolute;bottom:3px;left:13px;width:24px;height:14px;background:var(--acc-color,#7a4f33);border-radius:9px 9px 0 0;}
  .av-acc[data-type="hat"]::after{content:"";position:absolute;bottom:14px;left:13px;width:24px;height:4px;background:rgba(255,255,255,.18);border-radius:3px;}
  /* bow: knot + two loops — sits on the hair, by the side of the head */
  .av-acc[data-type="bow"]{top:6px;right:23px;width:5px;height:5px;background:var(--acc-color,#c9503a);border-radius:50%;z-index:6;}
  .av-acc[data-type="bow"]::before{content:"";position:absolute;top:-2px;left:-7px;width:8px;height:9px;background:var(--acc-color,#c9503a);border-radius:60% 30% 60% 30%;}
  .av-acc[data-type="bow"]::after{content:"";position:absolute;top:-2px;right:-7px;width:8px;height:9px;background:var(--acc-color,#c9503a);border-radius:30% 60% 30% 60%;}

  /* NOW READING CARD */
  .now-reading{position:absolute;bottom:16px;right:14px;background:rgba(250,242,228,.95);backdrop-filter:blur(4px);border-radius:16px;padding:9px 11px;width:138px;box-shadow:0 10px 24px var(--shadow);border:1.5px solid rgba(201,119,43,.3);z-index:4;cursor:pointer;transition:transform .2s;}
  .now-reading:hover{transform:scale(1.03)}
  .now-reading .lbl{font-size:9px;font-weight:800;letter-spacing:.6px;color:var(--amber-deep);text-transform:uppercase}
  .now-reading .ttl{font-family:'Fraunces',serif;font-size:13px;font-weight:600;color:var(--wood-dark);line-height:1.1;margin:3px 0 6px}
  .bar{height:7px;background:#e0cba8;border-radius:5px;overflow:hidden}
  .bar i{display:block;height:100%;background:linear-gradient(90deg,var(--amber),var(--rust));border-radius:5px;transition:width .4s}
  .pct{font-size:10px;font-weight:800;color:var(--wood-light);margin-top:3px}

  /* SIDE TABLE (next to the armchair, by the lamp) */
  .side-table{position:absolute;bottom:18px;left:118px;width:40px;height:42px;z-index:2;}
  .side-table .top{position:absolute;top:0;left:0;width:40px;height:9px;background:linear-gradient(180deg,var(--wood-light),var(--wood));border-radius:6px;box-shadow:0 4px 9px var(--shadow);}
  .side-table .leg{position:absolute;bottom:0;width:5px;height:34px;background:var(--wood-dark);border-radius:2px;}
  .side-table .leg.l{left:6px}
  .side-table .leg.r{right:6px}

  /* === SCENE ITEMS (unlocked via achievements) === */
  /* mug sits on top of the side table when unlocked */
  .si-mug{position:absolute;bottom:58px;left:143px;font-size:13px;z-index:3;pointer-events:none;
    animation:siFloat 4s ease-in-out infinite;filter:drop-shadow(0 2px 3px rgba(0,0,0,.25));}
  .si-cat{position:absolute;bottom:54px;left:228px;font-size:18px;z-index:3;pointer-events:none;transform-origin:bottom center;
    animation:catGroom 4.2s ease-in-out infinite .6s;filter:drop-shadow(0 2px 3px rgba(0,0,0,.25));}
  /* reading dog rests on the floor beside the armchair */
  .si-dog{position:absolute;bottom:14px;left:150px;font-size:20px;z-index:3;pointer-events:none;
    animation:siFloat 3.8s ease-in-out infinite .4s;filter:drop-shadow(0 2px 3px rgba(0,0,0,.3));}
  .si-cactus{position:absolute;top:99px;right:82px;font-size:15px;z-index:3;pointer-events:none;
    animation:siFloat 5s ease-in-out infinite 1s;filter:drop-shadow(0 2px 2px rgba(0,0,0,.2));}
  .si-moon{position:absolute;top:12px;left:70px;font-size:13px;z-index:3;pointer-events:none;
    animation:siFloat 6s ease-in-out infinite .3s;filter:drop-shadow(0 0 6px rgba(255,243,218,.8));}
  @keyframes siFloat{0%,100%{transform:translateY(0)}50%{transform:translateY(-3px)}}
  /* cat grooming: a gentle head-dip toward the paw, instead of bobbing */
  @keyframes catGroom{0%,72%,100%{transform:rotate(0)}80%{transform:rotate(-13deg)}88%{transform:rotate(-9deg)}96%{transform:rotate(-12deg)}}

  /* fairy lights */
  .si-lights{
    position:absolute;top:51px;left:106px;width:190px;height:6px;z-index:4;pointer-events:none;
    background-image:radial-gradient(circle,#ffd591 2.5px,transparent 2.5px);
    background-size:18px 6px;background-repeat:repeat-x;
    filter:drop-shadow(0 0 5px #ffd591);
    animation:twinkle 2.2s ease-in-out infinite;
  }
  @keyframes twinkle{0%,100%{opacity:1}50%{opacity:.55}}

  /* CONTENT AREA */
  .content-area{min-height:60px}
  .screen{display:none}
  .screen.active{display:block}

  /* CANTINHO PANEL */
  .panel{padding:16px 18px 28px}
  .panel-title{font-family:'Fraunces',serif;font-size:15px;color:var(--wood-dark);font-weight:600;margin-bottom:2px}
  .panel-sub{font-size:11.5px;color:var(--wood-light);font-weight:700;margin-bottom:12px}
  .row{margin-bottom:13px}
  .row .name{font-size:11px;font-weight:800;color:var(--amber-deep);text-transform:uppercase;letter-spacing:.5px;margin-bottom:6px}
  .swatches{display:flex;gap:8px;flex-wrap:wrap;}
  .sw{width:30px;height:30px;border-radius:50%;cursor:pointer;border:3px solid transparent;transition:transform .15s ease,border .15s ease;box-shadow:0 3px 7px var(--shadow);flex-shrink:0;}
  .sw:hover{transform:scale(1.12)}
  .sw.active{border-color:var(--wood-dark);transform:scale(1.08)}

  /* ESTANTE */
  .estante-header{display:flex;align-items:center;justify-content:space-between;padding:16px 18px 8px;}
  .estante-header .panel-title{margin:0}
  .btn-add{background:linear-gradient(135deg,var(--amber),var(--amber-deep));color:white;border:none;border-radius:20px;padding:7px 14px;font-family:'Nunito',sans-serif;font-weight:800;font-size:12px;cursor:pointer;box-shadow:0 4px 10px rgba(201,119,43,.4);transition:transform .15s;}
  .btn-add:hover{transform:translateY(-2px)}
  .filter-tabs{display:flex;gap:6px;padding:0 18px 12px;overflow-x:auto;scrollbar-width:none;}
  .filter-tabs::-webkit-scrollbar{display:none}
  .filter-tab{background:white;border:1.5px solid var(--cream-soft);border-radius:20px;padding:5px 14px;font-size:12px;font-weight:800;color:var(--wood-light);cursor:pointer;white-space:nowrap;font-family:'Nunito',sans-serif;transition:all .15s;flex-shrink:0;}
  .filter-tab.active{border-color:var(--amber);color:var(--amber-deep);background:rgba(232,161,75,.1)}
  .book-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;padding:0 18px 28px;}
  .book-card{cursor:pointer;transition:transform .2s}
  .book-card:hover{transform:translateY(-3px)}
  .book-cover{width:100%;aspect-ratio:2/3;border-radius:8px;overflow:hidden;background:linear-gradient(135deg,var(--wood-light),var(--wood-dark));box-shadow:0 4px 14px var(--shadow);display:flex;align-items:center;justify-content:center;font-size:32px;}
  .book-cover img{width:100%;height:100%;object-fit:cover;display:block}
  .book-card-title{font-size:11px;font-weight:700;color:var(--ink);margin-top:6px;line-height:1.2;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;}
  .book-card-author{font-size:10px;color:var(--wood-light);font-weight:600;margin-top:2px}
  .book-card-stars{font-size:11px;margin-top:3px}
  .book-card-prog{margin-top:4px;height:4px;background:#e0cba8;border-radius:3px;overflow:hidden}
  .book-card-prog i{display:block;height:100%;background:linear-gradient(90deg,var(--amber),var(--rust));border-radius:3px}

  /* ACHIEVEMENTS */
  .conquistas-header{padding:16px 18px 4px;font-family:'Fraunces',serif;font-size:18px;font-weight:600;color:var(--wood-dark)}
  .conquistas-sub{padding:0 18px 14px;font-size:12px;color:var(--wood-light);font-weight:700}
  .badge-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;padding:0 18px 28px}
  .badge-card{background:white;border-radius:16px;padding:14px 8px;text-align:center;box-shadow:0 3px 10px var(--shadow);transition:transform .2s;}
  .badge-card:not(.locked):hover{transform:translateY(-3px)}
  .badge-card.locked{opacity:.62;filter:grayscale(.5)}
  .badge-icon{font-size:30px;margin-bottom:5px}
  .badge-name{font-size:10px;font-weight:800;color:var(--ink);line-height:1.2}
  .badge-desc{font-size:9px;color:var(--wood-light);font-weight:600;margin-top:3px;line-height:1.3}
  .badge-ok{font-size:9px;color:var(--sage);font-weight:800;margin-top:4px}
  .badge-scene{font-size:9px;color:var(--amber-deep);font-weight:700;margin-top:3px;line-height:1.3}
  .badge-reward{font-size:9px;color:var(--rust);font-weight:800;margin-top:3px;line-height:1.3}
  .badge-prog{margin-top:6px}
  .badge-prog-bar{height:5px;background:#e6d3b4;border-radius:3px;overflow:hidden}
  .badge-prog-bar span{display:block;height:100%;background:linear-gradient(90deg,var(--amber),var(--rust));border-radius:3px;transition:width .5s}
  .badge-prog-n{font-size:9px;font-weight:800;color:var(--wood-light);margin-top:2px}
  /* ===== ACHIEVEMENT UNLOCK — gift box reveal ===== */
  .unlock-stage{position:absolute;inset:0;z-index:300;display:flex;align-items:center;justify-content:center;background:rgba(44,28,18,.66);opacity:0;pointer-events:none;transition:opacity .3s}
  .unlock-stage.open{opacity:1;pointer-events:auto}
  .unlock-card{position:relative;width:300px;max-width:86vw;height:320px;display:flex;align-items:center;justify-content:center}
  .gift{position:relative;width:130px;height:120px}
  .gift-box{position:absolute;left:15px;bottom:0;width:100px;height:80px;background:linear-gradient(135deg,var(--amber),var(--amber-deep));border-radius:9px;box-shadow:0 10px 24px rgba(0,0,0,.3)}
  .gift-ribbon{position:absolute;left:50%;top:0;width:16px;height:100%;transform:translateX(-50%);background:rgba(255,250,235,.55)}
  .gift-lid{position:absolute;left:5px;top:18px;width:120px;height:26px;background:linear-gradient(135deg,var(--rust),#9c3a1f);border-radius:8px;z-index:3;box-shadow:0 5px 12px rgba(0,0,0,.25)}
  .gift-bow{position:absolute;left:50%;top:-13px;width:28px;height:28px;transform:translateX(-50%);background:rgba(255,250,235,.7);border-radius:50% 50% 50% 50%/60% 60% 40% 40%}
  .gift-burst{position:absolute;left:50%;top:42%;width:36px;height:36px;transform:translate(-50%,-50%) scale(.4);border-radius:50%;background:radial-gradient(circle,rgba(255,243,214,.95),rgba(255,200,120,0) 70%);opacity:0;z-index:1}
  .gift.shake{animation:giftShake .9s ease-in-out}
  .gift.opened .gift-lid{animation:lidOff .55s ease-out forwards}
  .gift.opened .gift-box{animation:boxFade .5s ease-out .2s forwards}
  .gift.opened .gift-burst{animation:giftBurst .6s ease-out .15s}
  @keyframes giftShake{0%,100%{transform:rotate(0)}15%{transform:rotate(-7deg)}30%{transform:rotate(7deg)}45%{transform:rotate(-6deg)}60%{transform:rotate(5deg)}78%{transform:rotate(-3deg)}}
  @keyframes lidOff{to{transform:translateY(-96px) rotate(-16deg);opacity:0}}
  @keyframes boxFade{to{transform:translateY(12px) scale(.85);opacity:0}}
  @keyframes giftBurst{0%{opacity:0;transform:translate(-50%,-50%) scale(.4)}45%{opacity:1}100%{opacity:0;transform:translate(-50%,-50%) scale(2)}}
  .unlock-reveal{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:5px;text-align:center;opacity:0;transform:scale(.6);pointer-events:none}
  .unlock-reveal.show{opacity:1;transform:scale(1);pointer-events:auto;transition:opacity .4s,transform .5s cubic-bezier(.2,1.3,.5,1)}
  .unlock-reveal.show .unlock-icon{animation:iconPop .6s ease-out}
  @keyframes iconPop{0%{transform:scale(.3) rotate(-20deg)}60%{transform:scale(1.2) rotate(8deg)}100%{transform:scale(1) rotate(0)}}
  .unlock-icon{font-size:62px;filter:drop-shadow(0 5px 12px rgba(0,0,0,.25))}
  .unlock-title{font-family:'Fraunces',serif;font-size:12px;font-weight:700;color:#fff3e0;letter-spacing:.6px;text-transform:uppercase}
  .unlock-name{font-family:'Fraunces',serif;font-size:23px;font-weight:700;color:#fff;line-height:1.15}
  .unlock-reward{font-size:13px;font-weight:700;color:#ffd9a8;max-width:240px;line-height:1.4;margin-top:2px}
  .unlock-cta{margin-top:16px;padding:10px 22px;font-size:14px}

  /* EMPTY STATE */
  .empty-state{text-align:center;padding:40px 20px}
  .empty-state .empty-icon{font-size:48px;margin-bottom:12px}
  .empty-state p{font-size:14px;font-weight:600;color:var(--wood-light);line-height:1.5}

  /* NAV */
  .nav{display:flex;flex-shrink:0;justify-content:space-around;padding:12px 8px 16px;background:linear-gradient(180deg,transparent,#ecd7b4);border-top:1.5px solid rgba(201,119,43,.2);}
  .nav button{background:none;border:none;cursor:pointer;display:flex;flex-direction:column;align-items:center;gap:3px;font-family:'Nunito';font-weight:800;font-size:10px;color:var(--wood-light);opacity:.6;transition:opacity .2s,transform .15s;}
  .nav button.on{opacity:1;color:var(--amber-deep)}
  .nav button:hover{transform:translateY(-2px)}
  .nav .ic{font-size:19px}

  /* DISCOVER / SEARCH PAGE */
  .disc-h{font-size:11px;font-weight:800;color:var(--amber-deep);text-transform:uppercase;letter-spacing:.5px;margin:16px 0 8px}
  .chip-row{display:flex;flex-wrap:wrap;gap:7px}
  .disc-chip{padding:7px 12px;border:2px solid var(--cream-soft);border-radius:14px;background:white;font-family:'Nunito',sans-serif;font-weight:800;font-size:12px;color:var(--wood-light);cursor:pointer}
  .disc-chip:hover{border-color:var(--amber);color:var(--amber-deep)}
  .disc-row{display:flex;flex-shrink:0;gap:10px;overflow-x:auto;padding:0 2px 6px 0;scrollbar-width:none}
  .disc-row::-webkit-scrollbar{display:none}
  /* two stacked rows that scroll sideways together: a flex row of 2-card columns */
  .disc-col{display:flex;flex-direction:column;gap:12px;flex:0 0 auto}
  /* paginated discover sections: aligned grid + discreet ‹ › buttons */
  .disc-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px 6px;justify-items:center;align-items:start}
  .disc-grid .disc-card{width:74px}
  .disc-grid .disc-t{-webkit-line-clamp:2;min-height:26px}
  .disc-nav{display:flex;align-items:center;justify-content:flex-end;gap:8px;margin-top:8px}
  .disc-pg{width:30px;height:30px;border-radius:50%;border:1.5px solid var(--cream-soft);background:#fff;color:var(--wood-dark);font-size:16px;font-weight:800;line-height:1;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:border-color .15s,color .15s}
  .disc-pg:hover{border-color:var(--amber);color:var(--amber-deep)}
  .disc-pg[disabled]{opacity:.3;cursor:default}
  .disc-row::-webkit-scrollbar{display:none}
  .disc-card{flex:0 0 auto;width:74px;cursor:pointer;transition:transform .15s}
  .disc-card:hover{transform:translateY(-3px)}
  .disc-cover{width:74px;height:110px;border-radius:8px;overflow:hidden;background:linear-gradient(135deg,var(--wood-light),var(--wood-dark));display:flex;align-items:center;justify-content:center;font-size:28px;box-shadow:0 4px 12px var(--shadow)}
  .disc-cover img{width:100%;height:100%;object-fit:cover;display:block}
  .disc-t{font-size:10.5px;font-weight:700;color:var(--ink);margin-top:5px;line-height:1.25;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}

  /* BOOK DESCRIPTION + FIND LINKS */
  .book-desc{font-size:12px;color:var(--wood-light);font-weight:600;line-height:1.5;margin-top:6px}
  .desc-loading{opacity:.6;font-style:italic}
  .find-links .fl-row{display:flex;flex-wrap:wrap;gap:8px}
  .fl{padding:6px 12px;border:1.5px solid var(--cream-soft);border-radius:12px;background:white;font-size:12px;font-weight:800;color:var(--amber-deep);text-decoration:none}
  .fl:hover{border-color:var(--amber);background:rgba(232,161,75,.1)}

  /* PAGE PROGRESS */
  .page-row{display:flex;align-items:center;gap:6px;margin-bottom:10px;font-size:12px;font-weight:700;color:var(--wood-light)}
  .page-in{width:54px;padding:7px 8px;border:2px solid var(--cream-soft);border-radius:10px;font-family:'Nunito',sans-serif;font-size:13px;font-weight:700;color:var(--ink);text-align:center}
  .page-in:focus{outline:none;border-color:var(--amber)}
  .page-set{padding:7px 12px;border:none;border-radius:10px;background:linear-gradient(135deg,var(--amber),var(--amber-deep));color:#fff;font-family:'Nunito',sans-serif;font-weight:800;font-size:12px;cursor:pointer}

  /* SUGGEST NEXT BOOK */
  .suggest-modes{display:flex;flex-wrap:wrap;gap:7px;margin-bottom:16px}
  .suggest-mode{padding:7px 11px;border:2px solid var(--cream-soft);border-radius:14px;background:white;font-family:'Nunito',sans-serif;font-weight:800;font-size:12px;color:var(--wood-light);cursor:pointer}
  .suggest-mode.active{border-color:var(--amber);color:var(--amber-deep);background:rgba(232,161,75,.12)}
  .suggest-card{display:flex;gap:16px;align-items:flex-start}
  .suggest-why{font-size:12px;color:var(--wood-light);font-weight:700;margin-top:8px;line-height:1.45}

  /* IMPORT (Goodreads CSV) */
  .import-steps{margin:0 0 14px 18px;padding:0;font-size:13px;color:var(--ink);font-weight:600;line-height:1.6}
  .import-steps li{margin-bottom:4px}
  .import-file{display:block;width:100%;border:2px dashed var(--amber);border-radius:14px;padding:16px;text-align:center;cursor:pointer;background:rgba(232,161,75,.08);transition:background .15s}
  .import-file:hover{background:rgba(232,161,75,.16)}
  .import-file input{display:none}
  .import-file span{font-family:'Nunito',sans-serif;font-weight:800;font-size:14px;color:var(--amber-deep)}
  .import-status{margin-top:12px;font-size:13px;font-weight:700;color:var(--wood-dark);min-height:18px;text-align:center}
  .import-note{margin-top:14px;font-size:10.5px;color:var(--wood-light);font-weight:600;line-height:1.5}
  .import-warn{background:rgba(201,119,43,.12);border:1.5px solid var(--amber);border-radius:12px;padding:10px 12px;font-size:12px;font-weight:700;color:var(--wood-dark);line-height:1.45;margin:2px 0 14px}
  .import-warn b{color:var(--amber-deep)}

  /* SCENE EDIT BUTTON */
  .scene-edit{position:absolute;top:10px;right:12px;z-index:6;width:42px;height:42px;border-radius:50%;border:none;background:rgba(250,242,228,.9);color:var(--wood-dark);font-size:20px;cursor:pointer;box-shadow:0 3px 10px var(--shadow);display:flex;align-items:center;justify-content:center;}
  .scene-edit:hover{background:#fff;transform:scale(1.08)}

  /* CUSTOMIZE SCREEN */
  .cz-tabs{display:flex;gap:8px;padding:16px 18px 4px}
  .cz-tab{flex:1;padding:9px;border:2px solid var(--cream-soft);border-radius:14px;background:white;font-family:'Nunito',sans-serif;font-weight:800;font-size:13px;color:var(--wood-light);cursor:pointer}
  .cz-tab.active{border-color:var(--amber);color:var(--amber-deep);background:rgba(232,161,75,.1)}
  .cz-pane{display:none}
  .cz-pane.active{display:block}
  .cz-apply{display:block;width:calc(100% - 36px);margin:6px 18px 22px;padding:13px;border:none;border-radius:16px;background:linear-gradient(135deg,var(--amber),var(--amber-deep));color:#fff;font-family:'Nunito',sans-serif;font-weight:800;font-size:15px;cursor:pointer;box-shadow:0 6px 16px rgba(201,119,43,.4);transition:transform .15s}
  .cz-apply:hover{transform:translateY(-1px)}
  .env-season{font-family:'Fraunces',serif;font-size:14px;font-weight:600;color:var(--wood-dark);background:rgba(90,107,140,.12);border-radius:12px;padding:10px 12px;margin-bottom:10px}
  .env-season span{display:block;font-family:'Nunito',sans-serif;font-size:10.5px;font-weight:600;color:var(--wood-light);margin-top:2px}
  .env-hemi{display:flex;align-items:center;gap:8px;font-size:12px;font-weight:700;color:var(--wood-light);margin-bottom:14px}
  .env-hemi button{padding:5px 12px;border:1.5px solid var(--cream-soft);border-radius:12px;background:white;font-family:'Nunito',sans-serif;font-weight:800;font-size:12px;color:var(--wood-light);cursor:pointer}
  .env-hemi button.on{border-color:var(--amber);color:var(--amber-deep);background:rgba(232,161,75,.1)}
  .env-slot{margin-bottom:14px}
  .env-slot-name{font-size:11px;font-weight:800;color:var(--amber-deep);text-transform:uppercase;letter-spacing:.5px;margin-bottom:6px}
  .env-chips{display:flex;flex-wrap:wrap;gap:7px}
  .env-chip{padding:7px 11px;border:2px solid var(--cream-soft);border-radius:14px;background:white;font-family:'Nunito',sans-serif;font-weight:700;font-size:12px;color:var(--ink);cursor:pointer;transition:all .15s}
  .env-chip.active{border-color:var(--amber);color:var(--amber-deep);background:rgba(232,161,75,.12)}
  .env-chip.locked{opacity:.45;cursor:default}
  .env-chip .ssn{font-style:normal;font-size:9px;font-weight:800;text-transform:uppercase;background:rgba(90,107,140,.18);color:#5a6b8c;padding:1px 5px;border-radius:6px;margin-left:3px}
  .env-hint{font-size:11px;color:var(--wood-light);font-weight:600;line-height:1.5;margin-top:6px}

  /* MEZINHA CALENDAR PROP (little desk calendar on the side table) */
  .mezinha-cal{position:absolute;bottom:54px;left:119px;width:20px;height:23px;background:#fff;border-radius:4px;box-shadow:0 2px 5px var(--shadow);z-index:3;cursor:pointer;overflow:hidden;transition:transform .15s;}
  .mezinha-cal:hover{transform:translateY(-2px) scale(1.06)}
  .mezinha-cal .cal-h{height:6px;background:var(--rust)}
  .mezinha-cal .cal-n{font-family:'Fraunces',serif;font-size:11px;font-weight:700;color:var(--wood-dark);text-align:center;line-height:16px}

  /* ROOM CTA (home) */
  .room-cta{width:100%;display:flex;flex-direction:column;align-items:flex-start;gap:2px;background:linear-gradient(135deg,#5a6b8c,#3f4d68);color:#fff;border:none;border-radius:16px;padding:13px 15px;font-family:'Fraunces',serif;font-size:14px;font-weight:600;cursor:pointer;box-shadow:0 4px 12px var(--shadow);transition:transform .15s;}
  .room-cta:hover{transform:translateY(-2px)}
  .room-cta span{font-family:'Nunito',sans-serif;font-size:10.5px;font-weight:700;opacity:.8;text-transform:none}

  /* SESSION ACTIONS (sprint vs manual) */
  .session-actions{display:flex;gap:8px;margin-bottom:18px}
  .session-actions button{flex:1;display:flex;flex-direction:column;align-items:center;gap:4px;padding:11px 6px;border-radius:14px;border:2px solid var(--cream-soft);background:white;font-family:'Nunito',sans-serif;font-size:12px;font-weight:800;color:var(--ink);cursor:pointer;transition:all .15s;line-height:1.1}
  .session-actions button:hover{transform:translateY(-2px)}
  .session-actions .act-sprint{border-color:var(--amber);color:var(--amber-deep)}
  .session-actions .seal{font-size:8.5px;font-weight:800;letter-spacing:.4px;text-transform:uppercase;padding:2px 6px;border-radius:8px}
  .session-actions .seal.ver{background:rgba(125,138,92,.22);color:var(--sage)}
  .session-actions .seal.dec{background:rgba(201,119,43,.16);color:var(--amber-deep)}

  /* SPRINT MODAL */
  .sprint-opts{display:flex;flex-direction:column;gap:8px}
  .sprint-opt{width:100%;padding:13px;border:2px solid var(--cream-soft);border-radius:14px;background:white;font-family:'Nunito',sans-serif;font-size:14px;font-weight:800;color:var(--ink);cursor:pointer;transition:all .15s;text-align:center}
  .sprint-opt:hover{border-color:var(--amber);background:rgba(232,161,75,.1)}
  .sprint-clock{font-family:'Fraunces',serif;font-size:54px;font-weight:700;color:var(--wood-dark);text-align:center;margin:8px 0 10px}
  .sprint-track{height:8px;background:#e0cba8;border-radius:5px;overflow:hidden}
  .sprint-track i{display:block;height:100%;width:0;background:linear-gradient(90deg,var(--amber),var(--rust));border-radius:5px;transition:width 1s linear}

  /* CALENDAR MODAL */
  .cal-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px}
  .cal-title{font-family:'Fraunces',serif;font-size:17px;font-weight:600;color:var(--wood-dark)}
  .cal-nav{width:34px;height:34px;border-radius:50%;border:1.5px solid var(--cream-soft);background:white;color:var(--wood-dark);font-size:18px;font-weight:800;cursor:pointer}
  .cal-streak{font-size:12.5px;color:var(--wood-dark);font-weight:700;background:rgba(232,161,75,.12);border-radius:12px;padding:8px 12px;margin-bottom:12px}
  .cal-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:3px}
  .cal-dow{text-align:center;font-size:10px;font-weight:800;color:var(--wood-light);padding-bottom:4px}
  .cal-cell{position:relative;aspect-ratio:1;border-radius:9px;display:flex;align-items:center;justify-content:center;background:#f1e3c8}
  .cal-cell.empty{background:transparent}
  .cal-cell .cal-d{font-size:11px;font-weight:700;color:var(--wood-light)}
  .cal-cell.marked{cursor:pointer}
  .cal-cell.today{outline:2px solid var(--amber);outline-offset:-2px}
  .cal-x{position:absolute;font-size:20px;font-weight:800;transform:rotate(-12deg);line-height:1}
  .cal-x.ver{color:var(--rust)}
  .cal-x.dec{color:var(--amber);opacity:.7;font-size:17px}
  .cal-legend{display:flex;gap:16px;justify-content:center;margin:12px 0 4px;font-size:11px;font-weight:700;color:var(--wood-light)}
  .cal-legend .lg{display:inline-block;width:10px;height:10px;border-radius:3px;margin-right:4px;vertical-align:middle}
  .cal-legend .lg.ver{background:var(--rust)}
  .cal-legend .lg.dec{background:var(--amber);opacity:.7}
  .cal-registro{margin-top:6px;background:white;border-radius:14px;padding:13px 14px;font-size:12.5px;color:var(--wood-light);font-weight:600;min-height:54px;box-shadow:0 3px 10px var(--shadow)}
  .cal-registro .reg-date{font-family:'Fraunces',serif;font-size:14px;font-weight:600;color:var(--wood-dark)}
  .cal-registro .reg-books{margin-top:4px;color:var(--ink);font-weight:700}
  .cal-registro .reg-meta{margin-top:3px;font-size:11px;color:var(--amber-deep);font-weight:800}
  .cal-registro .reg-run{margin-top:6px;color:var(--sage);font-weight:800}

  /* ACHIEVEMENT EVIDENCE CHIP */
  .badge-ev{display:inline-block;font-size:8.5px;font-weight:800;letter-spacing:.3px;padding:2px 6px;border-radius:8px;margin-top:4px}
  .badge-ev.observed{background:rgba(125,138,92,.22);color:var(--sage)}
  .badge-ev.honor{background:rgba(201,119,43,.16);color:var(--amber-deep)}
  .conquistas-sub .ev{font-weight:800;padding:1px 5px;border-radius:6px}
  .conquistas-sub .ev.observed{background:rgba(125,138,92,.22);color:var(--sage)}
  .conquistas-sub .ev.honor{background:rgba(201,119,43,.16);color:var(--amber-deep)}


  /* CHALLENGE CARD (annual reading goal) */
  .challenge-card{background:white;border-radius:16px;padding:13px 14px;box-shadow:0 3px 10px var(--shadow);}
  .ch-top{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px}
  .ch-title{font-family:'Fraunces',serif;font-size:13px;font-weight:600;color:var(--wood-dark)}
  .ch-count{font-size:13px;font-weight:800;color:var(--amber-deep)}
  .ch-bar{height:9px;background:#e0cba8;border-radius:5px;overflow:hidden}
  .ch-bar i{display:block;height:100%;width:0;background:linear-gradient(90deg,var(--amber),var(--rust));border-radius:5px;transition:width .5s}
  .ch-controls{display:flex;align-items:center;gap:8px;margin-top:9px;font-size:11px;font-weight:700;color:var(--wood-light)}
  .ch-controls button{width:24px;height:24px;border-radius:50%;border:1.5px solid var(--cream-soft);background:white;color:var(--wood-dark);font-weight:800;cursor:pointer;font-size:14px;line-height:1}
  .ch-controls #ch-goal{font-weight:800;color:var(--amber-deep);min-width:18px;text-align:center}

  /* WELCOME OVERLAY */
  .welcome{position:absolute;inset:0;z-index:700;background:rgba(44,28,18,.72);backdrop-filter:blur(3px);display:flex;align-items:center;justify-content:center;padding:24px;opacity:0;pointer-events:none;transition:opacity .3s;}
  .welcome.open{opacity:1;pointer-events:all}
  .welcome-card{background:linear-gradient(180deg,#fbf2e2,#f4e4cb);border-radius:24px;max-width:320px;padding:26px 22px;text-align:center;box-shadow:0 20px 50px rgba(0,0,0,.5);transform:scale(.92);transition:transform .3s;}
  .welcome.open .welcome-card{transform:scale(1)}
  .welcome-card .wc-emoji{font-size:38px}
  .welcome-card h2{font-family:'Fraunces',serif;font-size:20px;color:var(--wood-dark);margin:8px 0 6px}
  .welcome-card p{font-size:13px;color:var(--wood-light);font-weight:600;line-height:1.5;margin-bottom:18px}
  .welcome-card button{background:linear-gradient(135deg,var(--amber),var(--amber-deep));color:white;border:none;border-radius:20px;padding:11px 26px;font-family:'Nunito',sans-serif;font-weight:800;font-size:14px;cursor:pointer;box-shadow:0 5px 14px rgba(201,119,43,.4);}
  .wc-signin{margin-top:13px}
  .wc-signin a{color:var(--wood-light);font-size:12px;font-weight:700;text-decoration:underline}

  /* FEEDBACK FORM */
  .feeling-row{display:flex;gap:10px;justify-content:center;margin:6px 0 16px}
  .feeling-btn{font-size:26px;background:white;border:2px solid var(--cream-soft);border-radius:14px;width:52px;height:52px;cursor:pointer;transition:all .15s}
  .feeling-btn.active{border-color:var(--amber);background:rgba(232,161,75,.12);transform:scale(1.08)}
  .fb-field{width:100%;padding:11px 14px;border:2px solid var(--cream-soft);border-radius:12px;font-family:'Nunito',sans-serif;font-size:14px;font-weight:600;color:var(--ink);background:white;outline:none;margin-bottom:10px}
  .fb-field:focus{border-color:var(--amber)}
  textarea.fb-field{resize:vertical;min-height:80px}

  /* MODALS */
  .modal-overlay{position:absolute;inset:0;background:rgba(0,0,0,.55);z-index:200;display:flex;align-items:flex-end;justify-content:center;opacity:0;pointer-events:none;transition:opacity .25s;}
  .modal-overlay.open{opacity:1;pointer-events:all}
  .modal{background:#faf2e2;border-radius:28px 28px 0 0;width:100%;max-width:430px;max-height:88%;overflow-y:auto;padding:0;transform:translateY(100%);transition:transform .3s cubic-bezier(.4,0,.2,1);}
  .modal-overlay.open .modal{transform:translateY(0)}
  .modal-inner{padding:20px 20px 40px}
  .modal-handle{width:40px;height:4px;background:var(--cream-soft);border-radius:4px;margin:14px auto 18px}
  .modal-title{font-family:'Fraunces',serif;font-size:18px;font-weight:600;color:var(--wood-dark);margin-bottom:16px}

  /* SEARCH */
  .search-wrap{position:relative;margin-bottom:14px}
  .search-input{width:100%;padding:12px 16px 12px 42px;border:2px solid var(--cream-soft);border-radius:14px;font-family:'Nunito',sans-serif;font-size:14px;font-weight:600;color:var(--ink);background:white;outline:none;transition:border-color .2s;}
  .search-input:focus{border-color:var(--amber)}
  .search-icon{position:absolute;left:13px;top:50%;transform:translateY(-50%);font-size:16px}
  .search-results{display:flex;flex-direction:column;gap:8px;padding-bottom:18px}
  .search-result{display:flex;gap:12px;padding:10px;background:white;border-radius:12px;cursor:pointer;transition:background .15s;align-items:center;}
  .search-result:hover{background:var(--cream-soft)}
  .search-result-cover{width:42px;height:60px;border-radius:5px;overflow:hidden;flex-shrink:0;background:linear-gradient(135deg,var(--wood-light),var(--wood-dark));display:flex;align-items:center;justify-content:center;font-size:20px;}
  .search-result-cover img{width:100%;height:100%;object-fit:cover}
  .search-result-title{font-weight:700;font-size:13px;color:var(--ink);line-height:1.2}
  .search-result-author{font-size:11px;color:var(--wood-light);font-weight:600;margin-top:2px}
  .search-arrow{font-size:18px;color:var(--amber);margin-left:auto;flex-shrink:0}
  .hint-text{text-align:center;padding:24px 10px;color:var(--wood-light);font-size:13px;font-weight:600;line-height:1.5}

  /* BOOK DETAIL */
  .book-detail-header{display:flex;gap:16px;margin-bottom:20px}
  .book-detail-cover{width:82px;height:124px;border-radius:8px;overflow:hidden;flex-shrink:0;box-shadow:0 8px 20px var(--shadow);background:linear-gradient(135deg,var(--wood-light),var(--wood-dark));display:flex;align-items:center;justify-content:center;font-size:36px;}
  .book-detail-cover img{width:100%;height:100%;object-fit:cover}
  .book-detail-title{font-family:'Fraunces',serif;font-size:17px;font-weight:600;color:var(--wood-dark);line-height:1.2;margin-bottom:4px}
  .book-detail-author{font-size:13px;color:var(--wood-light);font-weight:600}
  .section-label{font-size:11px;font-weight:800;color:var(--amber-deep);text-transform:uppercase;letter-spacing:.5px;margin-bottom:8px}
  .status-selector{display:flex;gap:6px;margin-bottom:20px}
  .status-btn{flex:1;padding:9px 6px;border:2px solid var(--cream-soft);border-radius:12px;background:white;font-family:'Nunito',sans-serif;font-size:11px;font-weight:800;color:var(--wood-light);cursor:pointer;text-align:center;transition:all .15s;}
  .status-btn.active{border-color:var(--amber);color:var(--amber-deep);background:rgba(232,161,75,.1)}

  /* PROGRESS */
  .progress-section{margin-bottom:20px}
  .progress-slider{width:100%;-webkit-appearance:none;appearance:none;height:8px;border-radius:5px;background:#e6d3b4;outline:none;cursor:pointer;margin-bottom:6px;}
  .progress-slider::-webkit-slider-thumb{-webkit-appearance:none;width:18px;height:26px;border:none;background:linear-gradient(135deg,var(--amber),var(--amber-deep));cursor:pointer;clip-path:polygon(0 0,100% 0,100% 100%,50% 74%,0 100%);box-shadow:0 3px 7px rgba(201,119,43,.5);margin-top:-9px;}
  .progress-slider::-moz-range-thumb{width:18px;height:26px;border:none;background:linear-gradient(135deg,var(--amber),var(--amber-deep));cursor:pointer;clip-path:polygon(0 0,100% 0,100% 100%,50% 74%,0 100%);box-shadow:0 3px 7px rgba(201,119,43,.5);}
  .progress-slider::-moz-range-track{height:8px;border-radius:5px;background:#e6d3b4;}
  .prog-ends{display:flex;justify-content:space-between;font-family:'Fraunces',serif;font-style:italic;font-size:10.5px;color:var(--wood-light);margin:0 2px 4px;}
  .progress-pct{font-weight:800;font-size:14px;color:var(--amber-deep);text-align:right}
  .bm-ico{display:inline-block;width:11px;height:15px;vertical-align:-2px;margin-right:5px;background:linear-gradient(135deg,var(--amber),var(--amber-deep));clip-path:polygon(0 0,100% 0,100% 100%,50% 72%,0 100%);}

  /* HALF-STAR RATING */
  .rating-section{margin-bottom:20px}
  .stars-input{display:flex;gap:4px}
  .star-slot{position:relative;width:36px;height:38px;cursor:pointer}
  .star-slot .star-display{position:absolute;inset:0;font-size:33px;line-height:38px;text-align:center;pointer-events:none;}
  .star-slot .star-click-l{position:absolute;left:0;top:0;width:50%;height:100%;z-index:3}
  .star-slot .star-click-r{position:absolute;right:0;top:0;width:50%;height:100%;z-index:3}
  .star-slot .star-q{position:absolute;top:0;width:25%;height:100%;z-index:3;cursor:pointer}
  .sd-full{color:var(--amber)}
  .sd-empty{color:#d0c0a0}
  .sd-half{position:relative;display:inline-block}
  .sd-half .sd-bg{color:#d0c0a0}
  .sd-half .sd-fg{position:absolute;left:0;top:0;width:52%;overflow:hidden;color:var(--amber)}
  .rating-hint{font-size:11px;color:var(--wood-light);font-weight:600;margin-top:4px}

  /* STATUS ADD */
  .status-add-btn{width:100%;padding:14px;border:2px solid var(--cream-soft);border-radius:16px;background:white;font-family:'Nunito',sans-serif;font-size:14px;font-weight:800;color:var(--ink);cursor:pointer;text-align:left;transition:all .15s;margin-bottom:8px;}
  .status-add-btn:hover{background:var(--cream-soft)}
  .status-add-btn.reading{border-color:var(--amber);color:var(--amber-deep)}
  .status-add-btn.read{border-color:var(--sage);color:var(--sage)}
  .btn-delete{width:100%;padding:12px;border:2px solid #e0a090;border-radius:14px;background:white;color:var(--rust);font-family:'Nunito',sans-serif;font-size:13px;font-weight:800;cursor:pointer;transition:background .15s;margin-top:8px;}
  .btn-delete:hover{background:#fdf0ec}

  /* TOAST */
  .toast{position:absolute;bottom:80px;left:50%;transform:translateX(-50%) translateY(20px);background:var(--wood-dark);color:var(--cream);padding:12px 20px;border-radius:14px;font-weight:700;font-size:13px;box-shadow:0 12px 30px rgba(0,0,0,.4);opacity:0;pointer-events:none;transition:all .3s ease;z-index:500;max-width:340px;text-align:center;}
  .toast.show{opacity:1;transform:translateX(-50%) translateY(0)}

  /* ===== LIBRARY CARD (shareable reading receipt) ===== */
  .lc-period-tabs{display:flex;gap:6px;margin-bottom:14px}
  .lc-period-tabs button{flex:1;padding:7px;border:2px solid var(--cream-soft);border-radius:12px;background:white;font-family:'Nunito',sans-serif;font-weight:800;font-size:12px;color:var(--wood-light);cursor:pointer;transition:all .15s}
  .lc-period-tabs button.on{border-color:var(--amber);color:var(--amber-deep);background:rgba(232,161,75,.12)}
  .lib-card{background:linear-gradient(180deg,#fbf3e3,#f3e3c6);border:2px solid var(--wood-light);border-radius:18px;padding:20px 18px;box-shadow:0 10px 26px var(--shadow);position:relative;overflow:hidden}
  .lib-card::before{content:"";position:absolute;top:0;left:0;right:0;height:8px;background:repeating-linear-gradient(90deg,var(--rust) 0 14px,var(--amber) 14px 28px)}
  .lc-top{display:flex;align-items:baseline;justify-content:center;gap:7px;margin-top:6px}
  .lc-brand{font-family:'Fraunces',serif;font-size:17px;font-weight:700;color:var(--wood-dark)}
  .lc-kicker{font-family:'Nunito',sans-serif;font-size:9px;font-weight:800;letter-spacing:1.5px;color:var(--amber-deep)}
  .lc-owner{text-align:center;font-family:'Fraunces',serif;font-size:13px;font-weight:600;color:var(--wood);margin-top:3px}
  .lc-period{text-align:center;font-family:'Fraunces',serif;font-size:22px;font-weight:600;color:var(--rust);margin:2px 0 12px}
  .lc-rule{height:2px;background:var(--wood-light);opacity:.5;margin:12px 0}
  .lc-rule.dashed{background:none;border-top:2px dashed var(--wood-light);height:0;opacity:.55}
  .lc-hero{display:grid;grid-template-columns:1fr 1fr;gap:12px}
  .lc-stat{text-align:center;background:rgba(255,255,255,.5);border-radius:12px;padding:11px 6px}
  .lc-stat b{display:block;font-family:'Fraunces',serif;font-size:27px;font-weight:700;color:var(--wood-dark);line-height:1}
  .lc-stat span{display:block;font-size:10px;font-weight:800;letter-spacing:.4px;text-transform:uppercase;color:var(--amber-deep);margin-top:4px}
  .lc-mini{display:flex;flex-direction:column;gap:6px;font-size:12px;font-weight:700;color:var(--wood-dark)}
  .lc-mini span{display:flex;justify-content:space-between}
  .lc-mini b{color:var(--amber-deep);font-weight:800}
  .lc-feat{background:rgba(125,138,92,.14);border-radius:12px;padding:10px 12px;margin-top:12px}
  .lc-feat .fl{font-size:9px;font-weight:800;letter-spacing:.5px;text-transform:uppercase;color:var(--sage)}
  .lc-feat .ft{font-family:'Fraunces',serif;font-size:14px;font-weight:600;color:var(--wood-dark);margin-top:2px;line-height:1.2}
  .lc-feat .fm{font-size:10.5px;font-weight:700;color:var(--wood-light);margin-top:2px}
  .lc-list{display:flex;flex-direction:column;gap:7px}
  .lc-item{display:flex;align-items:baseline;justify-content:space-between;gap:8px;font-size:12px}
  .lc-item .li-t{font-weight:700;color:var(--ink);line-height:1.2}
  .lc-item .li-a{font-size:10px;font-weight:600;color:var(--wood-light)}
  .lc-item .li-d{flex-shrink:0;font-family:'Nunito',sans-serif;font-size:9.5px;font-weight:800;color:var(--rust);border:1.5px solid var(--rust);border-radius:6px;padding:2px 6px;transform:rotate(-3deg);opacity:.85;white-space:nowrap}
  .lc-empty{text-align:center;font-size:12px;font-weight:700;color:var(--wood-light);padding:6px 0}
  .lc-foot{text-align:center;font-family:'Fraunces',serif;font-style:italic;font-size:12px;color:var(--wood-light);margin-top:14px}
  /* ===== Library Card v2 (redesign) ===== */
  .lib-card2{border-radius:20px;overflow:hidden;box-shadow:0 12px 30px var(--shadow);background:#f3ece0;position:relative}
  .lc2-head{background:linear-gradient(135deg,#7a4f33,#412a18);padding:20px 20px 18px;color:#fff;position:relative;overflow:hidden}
  .lc2-head::after{content:"";position:absolute;top:-34px;right:-30px;width:130px;height:130px;border-radius:50%;background:rgba(255,255,255,.06)}
  .lc2-row1{display:flex;justify-content:space-between;align-items:flex-start;position:relative;z-index:1}
  .lc2-brand{font-family:'Fraunces',serif;font-size:30px;font-weight:700;line-height:.95}
  .lc2-brand span{display:block;font-size:13px;font-weight:600;font-style:italic;opacity:.85;margin-top:3px}
  .lc2-date{text-align:right;font-family:'Fraunces',serif;font-style:italic;font-size:14px;font-weight:600;opacity:.92}
  .lc2-date span{display:block;font-family:'Nunito',sans-serif;font-style:normal;font-size:9px;font-weight:800;letter-spacing:1px;opacity:.7;margin-top:3px}
  .lc2-borrower{display:flex;align-items:center;justify-content:space-between;margin-top:18px;position:relative;z-index:1}
  .lc2-lbl{font-size:9px;font-weight:800;letter-spacing:1.5px;opacity:.7}
  .lc2-name{font-family:'Fraunces',serif;font-size:22px;font-weight:600;margin-top:2px}
  .lc2-member{font-size:9px;font-weight:800;letter-spacing:1px;border:1.5px solid rgba(255,255,255,.6);border-radius:20px;padding:5px 11px}
  .lc2-body{padding:16px 16px 14px}
  .lc2-tabs{display:flex;background:#e7d8c0;border-radius:14px;padding:3px;margin-bottom:14px}
  .lc2-tabs button{flex:1;padding:8px;border:none;border-radius:11px;background:transparent;font-family:'Nunito',sans-serif;font-weight:800;font-size:12px;color:var(--wood-light);cursor:pointer}
  .lc2-tabs button.on{background:#fff;color:var(--wood-dark);box-shadow:0 2px 5px rgba(0,0,0,.12)}
  .lc2-stats{display:flex;gap:8px;margin-bottom:8px}
  .lc2-stat{flex:1;background:#ece0cd;border-radius:13px;padding:11px 4px;text-align:center}
  .lc2-stat b{display:block;font-family:'Fraunces',serif;font-size:20px;font-weight:700;color:var(--wood-dark)}
  .lc2-stat span{font-size:8.5px;font-weight:800;color:var(--wood-light);text-transform:uppercase;letter-spacing:.4px}
  .lc2-sec{display:flex;align-items:baseline;justify-content:space-between;margin:16px 2px 6px}
  .lc2-sec span{font-size:11px;font-weight:800;color:var(--wood-light);text-transform:uppercase;letter-spacing:.6px}
  .lc2-sec i{font-size:11px;font-weight:700;font-style:normal;color:var(--wood-light);opacity:.7}
  .lc2-item{display:flex;align-items:center;gap:10px;padding:7px 2px}
  .lc2-bar{width:4px;height:30px;border-radius:3px;flex-shrink:0}
  .lc2-bar.reading{background:var(--amber)}
  .lc2-bar.done{background:var(--sage)}
  .lc2-bk{flex:1;min-width:0}
  .lc2-t{font-family:'Fraunces',serif;font-size:14px;font-weight:600;color:var(--wood-dark);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .lc2-a{font-size:11px;color:var(--wood-light);font-weight:600}
  .lc2-min{text-align:right;font-weight:800;font-size:13px;color:var(--amber-deep);flex-shrink:0}
  .lc2-min span{display:block;font-size:9px;font-weight:700;color:var(--wood-light)}
  .lc2-empty{font-size:12px;color:var(--wood-light);font-weight:600;padding:6px 2px}
  .lc2-rule{height:1px;background:#dcc8aa;margin:14px 0}
  .lc2-mini{display:flex;flex-direction:column;gap:9px;margin-bottom:4px}
  .lc2-mini span{display:flex;justify-content:space-between;background:#ece0cd;border-radius:11px;padding:9px 13px;font-size:12px;font-weight:700;color:var(--wood-dark)}
  .lc2-mini b{color:var(--amber-deep)}
  .lc2-foot{text-align:center;font-family:'Fraunces',serif;font-style:italic;font-size:11px;color:var(--wood-light);margin-top:14px}
  .lc-actions{display:flex;gap:8px;margin-top:14px}
  .lc-actions button{flex:1;padding:11px;border:none;border-radius:14px;font-family:'Nunito',sans-serif;font-weight:800;font-size:13px;cursor:pointer;transition:transform .15s}
  .lc-actions button:hover{transform:translateY(-2px)}
  .lc-save{background:linear-gradient(135deg,var(--amber),var(--amber-deep));color:#fff;box-shadow:0 4px 12px rgba(201,119,43,.4)}
  .lc-copy{background:white;border:2px solid var(--cream-soft)!important;color:var(--wood-dark)}

  /* ===== GUIDED TOUR (coachmarks) ===== */
  .tour-block{position:absolute;inset:0;z-index:900;background:transparent;transition:background .2s}
  .tour-spot{position:absolute;z-index:901;border-radius:14px;box-shadow:0 0 0 3px var(--amber),0 0 0 9999px rgba(44,28,18,.62);pointer-events:none;transition:all .28s cubic-bezier(.4,0,.2,1)}
  .tour-tip{position:absolute;z-index:902;max-width:262px;background:linear-gradient(180deg,#fbf2e2,#f4e4cb);border-radius:16px;padding:14px 15px;box-shadow:0 16px 40px rgba(0,0,0,.5);border:1.5px solid var(--amber)}
  .tour-tip h4{font-family:'Fraunces',serif;font-size:15px;font-weight:600;color:var(--wood-dark);margin-bottom:5px}
  .tour-tip p{font-size:12.5px;color:var(--wood-light);font-weight:600;line-height:1.45}
  .tour-foot{display:flex;align-items:center;justify-content:space-between;margin-top:12px;gap:10px}
  .tour-step{font-size:10.5px;font-weight:800;color:var(--amber-deep);letter-spacing:.4px}
  .tour-btns{display:flex;align-items:center;gap:4px}
  .tour-skip{background:none;border:none;color:var(--wood-light);font-family:'Nunito',sans-serif;font-weight:700;font-size:12px;cursor:pointer;padding:6px 8px}
  .tour-next{background:linear-gradient(135deg,var(--amber),var(--amber-deep));color:#fff;border:none;border-radius:12px;padding:7px 14px;font-family:'Nunito',sans-serif;font-weight:800;font-size:12px;cursor:pointer}

  /* ===== LANGUAGE SELECTOR ===== */
  .lang-row{display:flex;gap:6px}
  .lang-row button{padding:6px 14px;border:2px solid var(--cream-soft);border-radius:12px;background:white;font-family:'Nunito',sans-serif;font-weight:800;font-size:12px;color:var(--wood-light);cursor:pointer;transition:all .15s}
  .lang-row button.on{border-color:var(--amber);color:var(--amber-deep);background:rgba(232,161,75,.12)}
  .welcome-card .lang-row{justify-content:center;margin-bottom:16px}
  .lang-toggle{background:rgba(122,79,51,.12);color:var(--wood-dark);border:1.5px solid rgba(201,119,43,.3);border-radius:14px;padding:7px 10px;font-family:'Nunito',sans-serif;font-weight:800;font-size:12px;cursor:pointer;transition:background .15s}
  .lang-toggle:hover{background:rgba(122,79,51,.22)}

  /* ===== LIBRARY environment: a separate redesigned scene (.scene-lib) ===== */
  .scene-lib{position:relative;height:476px;overflow:hidden;background:radial-gradient(ellipse 55% 38% at 46% 66%, rgba(255,208,130,.40), transparent 70%),linear-gradient(180deg,#4a3320 0%,#3a2417 46%,#2a1b10 100%)}
  .scene-lib .bookcase{position:absolute;top:0;left:0;right:0;height:262px;background:linear-gradient(180deg,#42291a,#2e1c10);box-shadow:inset 0 0 0 9px #1c1006, inset 0 -20px 30px rgba(0,0,0,.55)}
  .scene-lib .pillar{position:absolute;top:0;bottom:0;width:10px;background:linear-gradient(180deg,#5a3a26,#241509);z-index:3}
  .scene-lib .pillar.l{left:9px}.scene-lib .pillar.r{right:9px}
  .scene-lib .plank{position:absolute;left:9px;right:9px;height:7px;background:linear-gradient(180deg,#6b4630,#241509);box-shadow:0 5px 9px rgba(0,0,0,.5);z-index:2}
  .scene-lib .bg{position:absolute;height:44px;border-radius:1px;box-shadow:inset -3px 0 4px rgba(0,0,0,.32),inset 2px 0 2px rgba(255,255,255,.08);z-index:1;background-image:repeating-linear-gradient(90deg,#9c4a22 0 9px,#7d8a5c 9px 17px,#5a6b8c 17px 25px,#b5512f 25px 33px,#b08a3e 33px 41px,#3f6b5c 41px 49px,#8a5a7a 49px 58px,#7a3618 58px 66px,#c9772b 66px 74px)}
  .scene-lib .bg.tall{height:48px}.scene-lib .bg.short{height:38px}
  .scene-lib .bg.click{cursor:pointer;transition:filter .2s}
  .scene-lib .bg.click:hover{filter:brightness(1.12)}
  .scene-lib .stack{position:absolute;z-index:1}
  .scene-lib .stack i{display:block;height:9px;border-radius:2px;margin-top:2px;box-shadow:0 1px 2px rgba(0,0,0,.35)}
  .scene-lib .ftag{position:absolute;z-index:4;background:var(--cream);color:var(--wood-dark);font-size:8.5px;font-weight:800;padding:1px 6px;border-radius:7px;border:1px solid var(--amber);box-shadow:0 2px 5px rgba(0,0,0,.4);cursor:pointer}
  .scene-lib .ftag b{color:var(--amber-deep)}
  .scene-lib .deco{position:absolute;z-index:2;font-size:22px;line-height:1;filter:drop-shadow(0 2px 3px rgba(0,0,0,.4))}
  .scene-lib .deskcal{position:absolute;width:42px;height:38px;z-index:4;cursor:pointer}
  .scene-lib .deskcal .spiral{position:absolute;top:-3px;left:4px;right:4px;height:9px;display:flex;justify-content:space-between}
  .scene-lib .deskcal .spiral i{width:5px;height:9px;border:1.5px solid #caa06f;border-bottom:none;border-radius:4px 4px 0 0}
  .scene-lib .deskcal .pg{position:absolute;top:4px;left:0;right:0;bottom:0;background:#fff;border-radius:2px 2px 4px 4px;box-shadow:0 4px 8px rgba(0,0,0,.45)}
  .scene-lib .deskcal .pg .m{font-size:7.5px;font-weight:800;color:var(--rust);text-align:center;margin-top:5px;letter-spacing:1px}
  .scene-lib .deskcal .pg .d{font-family:'Fraunces',serif;font-size:19px;font-weight:700;color:var(--wood-dark);text-align:center;line-height:15px}
  .scene-lib .ladder{position:absolute;top:14px;left:12px;height:244px;width:26px;z-index:5;border-left:6px solid #caa06f;border-right:6px solid #caa06f;border-radius:4px;background:repeating-linear-gradient(180deg, transparent 0 30px, #caa06f 30px 36px);box-shadow:0 6px 14px rgba(0,0,0,.4)}
  .scene-lib .wall-vignette{position:absolute;inset:0;pointer-events:none;box-shadow:inset 0 0 90px 30px rgba(20,12,6,.55);z-index:6}
  .scene-lib .floor{position:absolute;bottom:0;left:0;right:0;height:214px;background:linear-gradient(180deg,#5a3f28,#43301d);box-shadow:inset 0 10px 22px rgba(0,0,0,.45)}
  .scene-lib .floor::before{content:"";position:absolute;inset:0;background:repeating-linear-gradient(90deg, rgba(0,0,0,.10) 0 1px, transparent 1px 34px)}
  .scene-lib .librug{position:absolute;bottom:16px;left:40%;transform:translateX(-50%);width:248px;height:62px;border-radius:50%;background:radial-gradient(ellipse,#7a3a2a 0%,#5a2a20 58%,#7a3a2a 60%,#5a2a20 72%,transparent 74%);opacity:.92}
  .scene-lib .librug::after{content:"";position:absolute;inset:12px 26px;border-radius:50%;border:2px dashed rgba(255,210,150,.25)}
  .scene-lib .sidetable{position:absolute;bottom:56px;left:20px;width:62px;height:56px;z-index:5}
  .scene-lib .sidetable .top{position:absolute;top:0;width:62px;height:10px;background:linear-gradient(180deg,var(--wood-light),var(--wood));border-radius:6px;box-shadow:0 5px 10px rgba(0,0,0,.4)}
  .scene-lib .sidetable .leg{position:absolute;bottom:0;width:6px;height:46px;background:var(--wood-dark);border-radius:2px}
  .scene-lib .sidetable .leg.l{left:8px}.scene-lib .sidetable .leg.r{right:8px}
  /* floor lamp (was a banker's desk lamp) — stands on the floor */
  .scene-lib .banker{position:absolute;bottom:14px;left:18px;width:48px;height:156px;z-index:6}
  .scene-lib .banker .shade{position:absolute;top:0;left:1px;width:44px;height:20px;background:linear-gradient(180deg,#d7eccd,#2f6b54);border-radius:14px 14px 4px 4px;box-shadow:0 0 30px 9px rgba(110,200,150,.5)}
  .scene-lib .banker .pole{position:absolute;top:18px;left:21.5px;width:5px;height:133px;background:linear-gradient(90deg,#b0884f,#caa06f,#b0884f);border-radius:3px}
  .scene-lib .banker .base{position:absolute;bottom:0;left:5px;width:38px;height:13px;background:radial-gradient(ellipse at 50% 30%,#d3ab74,#8f6e42);border-radius:50%;box-shadow:0 4px 7px rgba(0,0,0,.45)}
  .scene-lib .cup{position:absolute;bottom:104px;right:128px;width:22px;height:18px;z-index:7}
  .scene-lib .cup .sauc{position:absolute;bottom:0;left:-3px;width:28px;height:5px;background:#e3d4b8;border-radius:50%;box-shadow:0 2px 4px rgba(0,0,0,.3)}
  .scene-lib .cup .bod{position:absolute;bottom:3px;left:2px;width:18px;height:13px;background:linear-gradient(180deg,#fbf2e2,#e8d6b8);border-radius:2px 2px 8px 8px}
  .scene-lib .cup .hdl{position:absolute;bottom:6px;right:-3px;width:7px;height:8px;border:2px solid #e8d6b8;border-left:none;border-radius:0 6px 6px 0}
  .scene-lib .cup .stm{position:absolute;bottom:16px;left:5px;width:3px;height:11px;border-radius:2px;background:rgba(255,255,255,.55);animation:steam 2.3s ease-in-out infinite}
  .scene-lib .cup .stm.b{left:11px;animation-delay:.9s}
  @keyframes steam{0%{opacity:0;transform:translateY(5px) scaleY(.6)}45%{opacity:.7}100%{opacity:0;transform:translateY(-11px) scaleY(1.25)}}
  .scene-lib .desk{position:absolute;bottom:20px;right:16px;width:150px;height:84px;z-index:5}
  .scene-lib .desk .top{position:absolute;top:0;left:0;width:150px;height:13px;background:linear-gradient(180deg,#7a4f33,#5a3a26);border-radius:4px;box-shadow:0 7px 13px rgba(0,0,0,.45)}
  .scene-lib .desk .apron{position:absolute;top:13px;left:8px;width:134px;height:28px;background:linear-gradient(180deg,#5a3a26,#3a2417)}
  .scene-lib .desk .drawer{position:absolute;top:18px;width:54px;height:17px;background:#4a2f1c;border-radius:3px;box-shadow:inset 0 0 0 1px #2e1c10}
  .scene-lib .desk .drawer.a{left:18px}.scene-lib .desk .drawer.b{right:18px}
  .scene-lib .desk .knob{position:absolute;top:25px;width:5px;height:5px;border-radius:50%;background:#caa06f}
  .scene-lib .desk .knob.a{left:43px}.scene-lib .desk .knob.b{right:43px}
  .scene-lib .desk .leg{position:absolute;bottom:0;width:9px;height:44px;background:var(--wood-dark);border-radius:2px}
  .scene-lib .desk .leg.l{left:10px}.scene-lib .desk .leg.r{right:10px}
  .scene-lib .desk .papers{position:absolute;top:-7px;right:18px;width:30px;height:9px;background:#efe6d2;border-radius:1px;transform:rotate(4deg);box-shadow:0 2px 4px rgba(0,0,0,.3)}
  .scene-lib .globe{position:absolute;bottom:104px;right:67px;width:48px;height:56px;z-index:6}
  .scene-lib .globe .ball{position:absolute;top:0;left:5px;width:38px;height:38px;border-radius:50%;background:radial-gradient(circle at 34% 30%, #6fa3c8, #285576 74%);box-shadow:inset -6px -6px 11px rgba(0,0,0,.4)}
  .scene-lib .globe .ball::after{content:"";position:absolute;top:10px;left:9px;width:10px;height:8px;border-radius:50%;background:#5d7a4a;box-shadow:11px 9px 0 -1px #5d7a4a,-2px 15px 0 -2px #5d7a4a,16px 2px 0 -3px #5d7a4a}
  .scene-lib .globe .ring{position:absolute;top:-3px;left:2px;width:44px;height:43px;border:2px solid #caa06f;border-radius:50%;transform:rotate(20deg)}
  .scene-lib .globe .stand{position:absolute;bottom:0;left:18px;width:11px;height:18px;background:var(--wood);border-radius:0 0 4px 4px}
  .scene-lib .globe .foot{position:absolute;bottom:0;left:9px;width:30px;height:6px;background:var(--wood-dark);border-radius:50%}
  .scene-lib .dogbed{position:absolute;bottom:14px;left:150px;width:74px;height:22px;border-radius:50%;background:radial-gradient(ellipse,#8a5a40 58%,#6b4630 60%);box-shadow:0 4px 9px rgba(0,0,0,.35);z-index:6}
  .scene-lib .dog{position:absolute;bottom:18px;left:160px;font-size:30px;z-index:7;transform:rotate(8deg);filter:drop-shadow(0 3px 4px rgba(0,0,0,.4))}
  .scene-lib .zzz{position:absolute;bottom:48px;left:196px;font-size:14px;color:#cfe0ea;z-index:7;opacity:.85;animation:zfloat 3.5s ease-in-out infinite}
  @keyframes zfloat{0%{opacity:0;transform:translateY(6px)}40%{opacity:.9}100%{opacity:0;transform:translateY(-12px)}}
  .scene-lib .wing{position:absolute;bottom:24px;left:40%;transform:translateX(-50%);width:152px;height:172px;z-index:6}
  .scene-lib .wing .wb-back{position:absolute;bottom:40px;left:28px;width:96px;height:126px;background:linear-gradient(180deg,#7a4632,#46291a);border-radius:46px 46px 14px 14px;box-shadow:inset 0 7px 15px rgba(255,255,255,.12),0 12px 24px rgba(0,0,0,.45)}
  .scene-lib .wing .wb-wingl{position:absolute;bottom:72px;left:12px;width:32px;height:80px;background:#6b3f2a;border-radius:24px 8px 10px 20px;transform:rotate(-7deg)}
  .scene-lib .wing .wb-wingr{position:absolute;bottom:72px;right:12px;width:32px;height:80px;background:#46291a;border-radius:8px 24px 20px 10px;transform:rotate(7deg)}
  .scene-lib .wing .wb-seat{position:absolute;bottom:24px;left:16px;width:120px;height:44px;background:#5a3320;border-radius:24px;box-shadow:0 12px 20px rgba(0,0,0,.45)}
  .scene-lib .wing .wb-arml{position:absolute;bottom:34px;left:6px;width:28px;height:52px;background:#6b3f2a;border-radius:16px}
  .scene-lib .wing .wb-armr{position:absolute;bottom:34px;right:6px;width:28px;height:52px;background:#46291a;border-radius:16px}
  .scene-lib .wing .avatar{position:absolute;bottom:52px;left:50%;transform:translateX(-50%);width:80px;height:92px;z-index:2}
  .scene-lib .libcat{position:absolute;bottom:60px;left:118px;font-size:24px;z-index:7;display:none;transform-origin:bottom center;animation:catGroom 4.2s ease-in-out infinite .6s;filter:drop-shadow(0 2px 3px rgba(0,0,0,.3))}
  /* --- click hardening: interactive layers always on top & decor never eats clicks --- */
  .scene-lib .scene-edit{z-index:30}
  .scene-lib .bg.click{z-index:30;pointer-events:auto}
  .scene-lib .ftag,.scene-lib .deskcal{z-index:40;pointer-events:auto}
  .scene-lib .bookcase,.scene-lib .plank,.scene-lib .pillar,.scene-lib .deco,.scene-lib .stack,
  .scene-lib .ladder,.scene-lib .wall-vignette,.scene-lib .floor,.scene-lib .librug,
  .scene-lib .sidetable,.scene-lib .banker,.scene-lib .cup,.scene-lib .desk,.scene-lib .globe,
  .scene-lib .dogbed,.scene-lib .dog,.scene-lib .zzz,.scene-lib .libcat,.scene-lib .wing,
  .scene-lib .bg:not(.click){pointer-events:none}
  .scene-lib .globe{pointer-events:auto;cursor:pointer}
  .scene-lib .globe:hover{transform:translateY(-1px) scale(1.04)}
  .scene-lib .globe .ball{transition:transform .6s ease}
  .scene-lib .globe.spin .ball{transform:rotateY(360deg)}
  /* real book spines on the library shelves (same logic as the living scene) */
  .scene-lib .lib-bl{position:absolute;display:flex;align-items:flex-end;gap:3px;overflow:hidden;z-index:29;cursor:pointer;padding:0 4px;pointer-events:auto}
  .scene-lib .lib-bl:hover .book{filter:brightness(1.1)}
  .scene-lib .libcat{animation:catGroom 4.2s ease-in-out infinite .6s;transform-origin:bottom center}
  /* slightly smaller "now reading" card in the library */
  #lib-nr-card .lbl{font-size:8px}
  #lib-nr-card .ttl{font-size:11px;margin:2px 0 5px}
  #lib-nr-card .pct{font-size:9px}

  /* ===== SHELF SORT + PIN ===== */
  .shelf-sort{display:flex;align-items:center;gap:8px;padding:0 18px 12px;font-size:12px;font-weight:700;color:var(--wood-light)}
  .shelf-sort select{font-family:'Nunito',sans-serif;font-weight:800;font-size:12px;color:var(--amber-deep);background:white;border:1.5px solid var(--cream-soft);border-radius:12px;padding:5px 10px;cursor:pointer;outline:none}
  .book-cover{position:relative}
  .pin-badge{position:absolute;top:4px;right:4px;font-size:14px;filter:drop-shadow(0 1px 2px rgba(0,0,0,.55))}

  /* ===== DATES + REREAD (book detail) ===== */
  .dates-section,.reread-section{margin-top:14px}
  .date-row{display:flex;align-items:center;justify-content:space-between;gap:10px;margin:6px 0}
  .date-row label{font-size:12px;font-weight:800;color:var(--wood-dark)}
  .date-in{font-family:'Nunito',sans-serif;font-weight:700;font-size:13px;color:var(--wood-dark);background:#fff;border:1.5px solid var(--cream-soft);border-radius:10px;padding:6px 10px;outline:none}
  .reread-row{display:flex;align-items:center;justify-content:space-between;gap:10px;font-size:13px;font-weight:700;color:var(--wood-dark)}
  .reread-row > span:last-child{display:flex;align-items:center;gap:8px}
  .reread-undo{width:26px;height:26px;border-radius:50%;border:1.5px solid var(--cream-soft);background:#fff;color:var(--wood-light);font-weight:800;font-size:16px;line-height:1;cursor:pointer}

  /* ===== CALENDAR YEAR HEATMAP ===== */
  .cal-modes{display:flex;gap:6px;justify-content:center;margin:2px 0 10px}
  .cal-mode{padding:5px 14px;border:2px solid var(--cream-soft);border-radius:12px;background:#fff;font-family:'Nunito',sans-serif;font-weight:800;font-size:12px;color:var(--wood-light);cursor:pointer}
  .cal-mode.on{border-color:var(--amber);color:var(--amber-deep);background:rgba(232,161,75,.12)}
  .yr-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px 10px;padding:4px 4px 10px}
  .yr-mlabel{font-size:11px;font-weight:800;color:var(--wood-dark);margin-bottom:4px}
  .yr-mlabel span{color:var(--amber-deep)}
  .yr-dots{display:grid;grid-template-columns:repeat(7,1fr);gap:2px}
  .yr-dot{aspect-ratio:1;border-radius:2px;background:var(--cream-soft)}
  .yr-dot.empty{background:transparent}
  .yr-dot.dec{background:var(--amber)}
  .yr-dot.ver{background:var(--amber-deep)}
  .yr-dot.today{outline:1.5px solid var(--rust);outline-offset:-1px}

  /* ===== BARCODE SCANNER ===== */
  .scan-cta{width:100%;margin-top:8px;padding:9px;border:1.5px dashed var(--cream-soft);border-radius:12px;background:rgba(232,161,75,.08);color:var(--amber-deep);font-family:'Nunito',sans-serif;font-weight:800;font-size:13px;cursor:pointer}
  .scan-cta:hover{background:rgba(232,161,75,.16)}
  .scan-stage{position:relative;width:100%;aspect-ratio:4/3;background:#1c120b;border-radius:14px;overflow:hidden;margin:10px 0}
  .scan-stage video{width:100%;height:100%;object-fit:cover;display:block}
  .scan-frame{position:absolute;inset:20% 12%;border:3px solid rgba(255,213,145,.9);border-radius:12px;pointer-events:none}
  .scan-status{text-align:center;font-size:12px;font-weight:700;color:var(--wood-light);margin:4px 0 12px}

  /* ===== DISCREET SCROLLBARS ===== */
  .scroll-wrap, .modal, .public-view, .book-desc, .modal-inner{ scrollbar-width:thin; scrollbar-color:rgba(122,79,51,.3) transparent; }
  .scroll-wrap::-webkit-scrollbar, .modal::-webkit-scrollbar, .public-view::-webkit-scrollbar, .book-desc::-webkit-scrollbar, .modal-inner::-webkit-scrollbar{ width:7px; height:7px; }
  .scroll-wrap::-webkit-scrollbar-track, .modal::-webkit-scrollbar-track, .public-view::-webkit-scrollbar-track, .book-desc::-webkit-scrollbar-track, .modal-inner::-webkit-scrollbar-track{ background:transparent; }
  .scroll-wrap::-webkit-scrollbar-thumb, .modal::-webkit-scrollbar-thumb, .public-view::-webkit-scrollbar-thumb, .book-desc::-webkit-scrollbar-thumb, .modal-inner::-webkit-scrollbar-thumb{
    background:rgba(122,79,51,.26); border-radius:999px; border:2px solid transparent; background-clip:padding-box; min-height:30px;
  }
  .scroll-wrap::-webkit-scrollbar-thumb:hover, .modal::-webkit-scrollbar-thumb:hover, .public-view::-webkit-scrollbar-thumb:hover, .book-desc::-webkit-scrollbar-thumb:hover, .modal-inner::-webkit-scrollbar-thumb:hover{
    background:rgba(122,79,51,.45); background-clip:padding-box;
  }

  /* ===== FLOATING SPRINT COUNTER ===== */
  .sprint-mini{position:absolute;right:12px;bottom:74px;z-index:90;display:none;align-items:center;gap:9px;background:rgba(250,242,226,.93);backdrop-filter:blur(5px);-webkit-backdrop-filter:blur(5px);border:1.5px solid var(--cream-soft);border-radius:16px;padding:8px 10px;box-shadow:0 8px 22px rgba(58,36,24,.3);cursor:pointer;font-family:'Nunito',sans-serif;animation:smIn .3s ease}
  @keyframes smIn{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}
  .sprint-mini .sm-emoji{font-size:16px;line-height:1}
  .sprint-mini .sm-body{display:flex;flex-direction:column;gap:3px;min-width:58px}
  .sprint-mini .sm-clock{font-family:'Fraunces',serif;font-weight:700;font-size:15px;color:var(--wood-dark);line-height:1;letter-spacing:.3px}
  .sprint-mini .sm-track{height:4px;background:#e0cba8;border-radius:3px;overflow:hidden}
  .sprint-mini .sm-track i{display:block;height:100%;width:0;background:linear-gradient(90deg,var(--amber),var(--rust));border-radius:3px;transition:width 1s linear}
  .sprint-mini .sm-x{width:20px;height:20px;border:none;background:rgba(122,79,51,.12);color:var(--wood-light);border-radius:50%;font-size:10px;font-weight:800;cursor:pointer;flex-shrink:0;line-height:1;padding:0}
  .sprint-mini .sm-x:hover{background:rgba(122,79,51,.22)}

  /* ===== LANGUAGE / REGION PICKER ===== */
  .pick-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:8px}
  .pick-btn{padding:10px 12px;border:2px solid var(--cream-soft);border-radius:12px;background:#fff;font-family:'Nunito',sans-serif;font-weight:800;font-size:13px;color:var(--wood-dark);cursor:pointer;text-align:left}
  .pick-btn.on{border-color:var(--amber);color:var(--amber-deep);background:rgba(232,161,75,.12)}
  .wc-lang{display:flex;gap:5px;justify-content:center;flex-wrap:wrap;margin:0 0 14px}
  .wc-lang button{font-family:'Nunito',sans-serif;font-weight:800;font-size:12px;color:var(--wood-dark);background:#fff;border:1.5px solid var(--cream-soft);border-radius:10px;padding:6px 9px;cursor:pointer;line-height:1;min-width:34px}
  .wc-lang button:hover{border-color:var(--amber);color:var(--amber-deep)}
  .wc-lang button:hover{border-color:var(--amber)}
