.desk{max-width:1200px;margin:0 auto;padding:8px clamp(16px,4vw,48px) 30px}.desk h1{margin-bottom:30px;font-size:clamp(38px,4.4vw,62px)}.desk-note{flex-wrap:wrap;align-items:center;gap:8px 22px;margin-bottom:24px;padding:16px 22px;display:flex}.desk-empty{text-align:center;flex-direction:column;align-items:center;gap:22px;padding:30px 0 50px;display:flex}.ghost-book{aspect-ratio:1;border:2px dashed #f6e8cf80;width:min(58vw,280px);transform:rotate(-3deg)}.shelf{grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:40px 30px;margin:0;padding:0;list-style:none;display:grid}.shelf-book{aspect-ratio:1;transition:transform .2s;display:block;box-shadow:1px 1px #e9dfc9,2px 2px #cfc3ab,3px 3px #e9dfc9,4px 4px #2a241c,12px 20px 30px #020308b3}.shelf-book:hover{transform:translateY(-5px)}.shelf-book img{width:100%;height:100%;display:block}.no-cover{height:100%;color:var(--on-table);font-family:var(--display);background:#2b3a55;place-items:center;font-size:30px;display:grid}.shelf-title{font-family:var(--display);margin-top:18px;font-size:21px;line-height:1.15}.shelf-state{color:var(--on-table-soft);margin-top:4px;font-size:15px}.shelf-add a{aspect-ratio:1;border:2px dashed #f6e8cf80;flex-direction:column;justify-content:center;align-items:center;gap:4px;font-weight:700;text-decoration:none;display:flex}.shelf-add a:hover{border-color:var(--lamp);color:var(--lamp)}.shelf-add span{font-family:var(--display);font-size:58px;line-height:1}.ledger{max-width:720px;margin:60px auto 0;padding:clamp(22px,4vw,42px)}.ledger-head{border-bottom:1px solid var(--line);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:14px;padding-bottom:20px;display:flex}.ledger-head span{color:var(--ink-soft);font-size:15px;display:block}.ledger-head strong{font-family:var(--display);font-size:32px;font-weight:400}.ledger h2{margin:22px 0 10px;font-size:26px}.ledger table{border-collapse:collapse;width:100%;font-size:16px}.ledger td{border-top:1px solid var(--line);vertical-align:top;padding:9px 8px 9px 0}.ledger td:first-child{white-space:nowrap;color:var(--ink-soft)}.ledger td:last-child{text-align:right;white-space:nowrap;font-weight:800}.plus{color:var(--ok)}.ledger-foot{color:var(--ink-soft);margin-top:20px;font-size:15px}.desk-guest{margin-top:40px}@media (max-width:480px){.shelf{grid-template-columns:repeat(2,minmax(0,1fr));gap:30px 18px}}
