.garden-growth-strip { display:flex; align-items:center; justify-content:space-between; gap:20px; margin:16px 0; padding:18px; border:1px solid #e2cfda; border-radius:24px; background:#fff8fc; color:#583b4c; }
.garden-growth-strip strong { font-size:1.2rem; }
.garden-growth-strip p { margin:8px 0; }
.garden-growth-strip span { display:inline-block; margin:4px 12px 4px 0; }
.garden-size-note { border-radius:12px; background:#e5f2ec; padding:6px 12px; font-weight:800; }
.garden-main-actions { display:flex; flex-wrap:wrap; gap:10px; min-width:0; }
.garden-main-actions button, .garden-gather-actions button { min-width:96px; min-height:96px; white-space:normal; }
.garden-main-actions button { max-width:230px; }
.iso-scene, .atelier-garden-home .iso-scene { padding-top:var(--garden-headroom,86px); padding-bottom:18px; }
.iso-tile { background:none; }
.iso-floor { position:absolute; inset:0; background-size:100% 100%; background-position:center top; background-repeat:no-repeat; pointer-events:none; }
.iso-object .iso-label { position:absolute; top:100%; margin-top:2px; }
.iso-object-img { transform-origin:center bottom; filter:drop-shadow(0 2px 2px #68566e29); }
.iso-object.is-tappable:hover .iso-object-img { transform:scale(var(--object-scale,1)); filter:brightness(1.05) drop-shadow(0 2px 3px #68566e38); }
.iso-object.is-next-place .iso-object-img { animation:none; }
.garden-zoom-button { min-width:96px; min-height:96px; margin:8px 0; }
.iso-scene.garden-zoomed { display:block; max-height:560px; overflow:auto; overscroll-behavior:contain; border:2px solid #bad8cf; border-radius:24px; padding:var(--garden-headroom,86px) 25px 20px; }
.iso-scene.garden-zoomed .iso-board { margin:0; }
.garden-place-dock { margin:12px 0; }
.garden-place-dock h4 { margin:12px 0; color:#583b4c; }
.garden-place-dock > div { display:grid; grid-template-columns:repeat(auto-fit,minmax(130px,1fr)); gap:12px; }
.garden-place-dock button { min-width:96px; min-height:128px; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:10px; white-space:normal; }
.garden-place-dock .asset-sprite { width:76px; height:76px; }
.garden-map-companions { position:relative; width:100%; aspect-ratio:1; display:block; }
.garden-map-companions > .avatar-doll { position:absolute; left:0; top:0; width:66.666%; height:100%; min-height:0; max-width:none; }
.garden-map-companions > .pet-companion { position:absolute; right:-10%; bottom:0; width:45%; height:50%; min-width:0; }
.obj-avatar .iso-label { display:none; }
.garden-editor { width:100%; min-width:0; padding:18px; border:2px solid #c8dfd5; border-radius:26px; background:#f5fbf8; color:#583b4c; }
.garden-editor h3 { margin:0 0 8px; }
.garden-editor button { min-width:96px; min-height:96px; white-space:normal; overflow-wrap:anywhere; }
.garden-editor button:focus-visible { outline:4px solid #755299; outline-offset:3px; }
.garden-editor-tabs, .garden-editor-footer { display:flex; flex-wrap:wrap; gap:10px; margin:12px 0; }
.garden-editor-tabs button[aria-pressed="true"] { background:#e9dced; border-color:#ae7ea6; color:#55314d; }
.garden-shelf { display:flex; gap:12px; padding:8px 6px 16px; overflow:auto; max-width:100%; margin-bottom:14px; scrollbar-width:auto; }
.garden-shelf-card { flex:0 0 150px; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:8px; height:auto; border:2px solid #dfd4df; border-radius:20px; background:#fff; padding:10px; color:#583b4c; }
.garden-shelf-card small { color:#674d60; line-height:1.45; }
.garden-shelf-card.is-chosen { background:#fff0f7; border-color:#a77493; box-shadow:0 3px 0 #e8d2e2; }
.garden-item-sprite { display:block; width:76px; height:76px; flex:0 0 76px; }
.garden-editor-companions { position:relative; display:block; width:84px; height:84px; }
.garden-editor-companions > .avatar-doll { position:absolute; left:0; top:0; min-height:0; height:100%; width:66.666%; max-width:none; }
.garden-editor-companions > .pet-companion { position:absolute; width:38px; height:44px; min-width:0; right:-6px; bottom:0; }
.garden-floor-sample { display:block; width:76px; height:76px; border:2px solid #c8bfc9; border-radius:16px; box-shadow:0 3px 0 #e5dde5; }
.floor-grass { background-color:#cfe6b9; background-image:radial-gradient(ellipse at 25% 60%,#acd18e 0 6%,transparent 7%),radial-gradient(ellipse at 70% 25%,#bad89f 0 7%,transparent 8%); }
.floor-peach { background-color:#f8d9e1; background-image:linear-gradient(90deg,transparent 46%,#ffeff4 47% 53%,transparent 54%),linear-gradient(transparent 46%,#ffeff4 47% 53%,transparent 54%); background-size:48px 48px; }
.floor-lavender { background-color:#ded6f3; background-image:linear-gradient(45deg,transparent 45%,#f5f0fc 46% 54%,transparent 55%),linear-gradient(-45deg,transparent 45%,#f5f0fc 46% 54%,transparent 55%); background-size:64px 64px; }
.floor-wood { background-color:#f3e6d3; background-image:repeating-linear-gradient(0deg,transparent 0 28px,#d6bba4 29px 31px,transparent 32px); }
.floor-check { background-color:#f5faf7; background-image:conic-gradient(#c5e2d4 25%,transparent 0 50%,#c5e2d4 0 75%,transparent 0); background-size:64px 64px; }
.floor-stars { background-color:#e5e3fb; background-image:url("./assets/garden-floors/stars-sample.svg"); background-size:76px 76px; }
.garden-edit-workspace { display:grid; grid-template-columns:minmax(200px,240px) minmax(0,1fr); gap:18px; align-items:start; }
.garden-edit-preview { display:flex; flex-direction:column; align-items:center; gap:10px; text-align:center; min-width:0; }
.garden-edit-preview p { margin:0; line-height:1.5; }
.garden-edit-preview .primary-button, .garden-edit-preview > .soft-button { width:100%; }
.garden-cursor-pad { display:grid; grid-template-columns:repeat(2,minmax(96px,1fr)); gap:8px; width:100%; }
.garden-cursor-pad button { padding:10px; font-size:1.8rem; background:#fff; color:#4c6860; }
.garden-edit-scroll { width:100%; max-height:460px; min-height:216px; overflow:auto; padding:12px; border:3px solid #96c5bd; border-radius:20px; background:#e7f4fb; overscroll-behavior:contain; scrollbar-width:auto; }
.garden-edit-scroll:focus-visible { outline:4px solid #755299; outline-offset:3px; }
.garden-edit-grid { width:max-content; display:grid; gap:6px; }
.garden-edit-row { display:grid; grid-template-columns:repeat(var(--garden-columns),96px); gap:6px; }
.garden-edit-row > div { display:flex; }
.garden-editor .garden-edit-cell { position:relative; min-height:112px; height:112px; width:96px; padding:7px 3px; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:5px; border:2px solid #99b592; border-radius:12px; color:#213324; }
.garden-edit-cell .garden-item-sprite { width:62px; height:62px; flex-basis:62px; pointer-events:none; }
.garden-edit-cell .garden-editor-companions { width:70px; height:70px; pointer-events:none; }
.garden-cell-name { width:100%; font-size:.72rem; line-height:1.3; font-weight:800; overflow-wrap:anywhere; pointer-events:none; }
.garden-edit-cell.is-cursor { outline:4px solid #397e89; outline-offset:-5px; }
.garden-edit-cell.is-selected-item { border-color:#a46b91; }
.garden-edit-cell.is-building-cell { box-shadow:inset 0 0 0 3px #bc86ab66; }
.garden-size-badge { padding:3px 10px; border-radius:999px; background:#eee2f4; color:#5b376c; font-size:.8rem; font-weight:800; }
.garden-cell-name small { display:block; font-size:.65rem; margin-top:2px; }
.garden-reserved-cell { font-size:1.05rem; font-weight:800; color:#715575; pointer-events:none; }
.garden-placement-note { font-size:.85rem; line-height:1.5; padding:8px 10px; border-radius:12px; }
.garden-placement-note.is-valid { background:#dff2e5; color:#285a3b; }
.garden-placement-note.is-invalid { background:#fff0e7; color:#854c32; }
.garden-edit-cell.is-placement-preview, .garden-edit-cell.is-drop-target { outline:4px solid #3c8560; outline-offset:-5px; }
.garden-edit-cell.is-placement-blocked, .garden-edit-cell.is-drop-blocked { outline:4px dashed #b36948; outline-offset:-5px; }
.garden-empty-cell { font-size:1.6rem; color:#546e4e; pointer-events:none; }
.garden-edit-status { background:#fff; padding:12px 14px; border-radius:14px; line-height:1.5; }
.garden-editor [data-garden-drag] { user-select:none; touch-action:none; cursor:grab; }
.garden-shelf [data-garden-drag] { touch-action:pan-x; }
.is-garden-dragging { opacity:.55; }
.garden-drag-ghost { position:fixed; z-index:6000; pointer-events:none; width:96px; height:110px; display:grid; place-items:center; border-radius:20px; background:rgba(255,250,252,.95); box-shadow:0 8px 20px #795e8055; }
.garden-delivery { padding:18px; margin:16px 0; border:2px solid #ddbdd3; border-radius:24px; background:#fff7fb; }
.garden-delivery-list { display:flex; flex-wrap:wrap; gap:16px; margin:12px 0; }
.garden-delivery-list > div { display:flex; flex-direction:column; align-items:center; gap:10px; flex:1 1 130px; min-width:0; text-align:center; }
.garden-delivery-list .asset-sprite { width:84px; height:84px; }
.garden-gift-space { display:grid; place-items:center; background:#def0e5; border-radius:22px; width:76px; height:76px; font-size:2rem; color:#4c7361; }
.garden-delivery > button { min-width:96px; min-height:96px; }
@media (max-width:700px) {
  .garden-growth-strip { flex-direction:column; align-items:stretch; padding:14px; }
  .garden-main-actions { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); }
  .garden-main-actions button { width:100%; max-width:none; }
  .garden-editor { padding:10px; }
  .garden-editor-tabs > button { flex:1 1 96px; }
  .garden-edit-workspace { display:flex; flex-direction:column; gap:14px; }
  .garden-edit-scroll { order:0; max-height:340px; }
  .garden-edit-preview { order:1; width:100%; }
  .garden-cursor-pad { grid-template-columns:repeat(2,minmax(96px,1fr)); }
  .garden-editor-footer > button { flex:1 1 96px; }
}
@media (prefers-reduced-motion:reduce) { .garden-editor *, .garden-drag-ghost { animation:none!important; transition:none!important; } }

/* おにわは、おうちの中の部品ではなく、ひとつの場所 */
.garden-gate {
  display: flex;
  flex-direction: column;
  width: 100%;
  min-height: 340px;
  padding: 0;
  overflow: hidden;
  border: 0;
  border-radius: 28px;
  background:
    radial-gradient(circle at 18% 16%, rgba(255, 255, 255, .8), transparent 32%),
    linear-gradient(180deg, #d5f2ff 0%, #e8f8c9 48%, #d5eeae 100%);
  box-shadow: 0 16px 36px rgba(104, 86, 110, .14);
  color: #5c3d4c;
  text-align: left;
  cursor: pointer;
}
.garden-gate:focus-visible { outline: 4px solid #755299; outline-offset: 3px; }
.garden-gate.is-glowing { box-shadow: 0 0 0 5px rgba(255, 214, 140, .85), 0 16px 36px rgba(104, 86, 110, .14); }
.garden-gate-art { flex: 1; min-height: 230px; display: flex; align-items: flex-end; justify-content: center; pointer-events: none; }
.garden-gate-art .iso-scene { width: 100%; padding-top: 36px; padding-bottom: 0; }
.garden-gate-label {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 12px;
  padding: 12px 18px 16px;
  background: rgba(255, 252, 248, .92);
}
.garden-gate-label b { font-size: 1.35rem; }
.garden-gate-label small { font-size: 1rem; font-weight: 800; color: #8a4d78; }

.garden-world {
  position: relative;
  height: 100%;
  min-height: min(720px, calc(100svh - 132px));
  display: flex;
  flex-direction: column;
  overflow: hidden;
  border-radius: 28px;
  background:
    radial-gradient(circle at 14% 12%, rgba(255, 255, 255, .78), transparent 28%),
    radial-gradient(circle at 86% 6%, rgba(255, 205, 230, .5), transparent 24%),
    linear-gradient(180deg, #c9efff 0%, #e7f7c4 42%, #d3eea4 100%);
  box-shadow: inset 0 -40px 0 rgba(255, 255, 255, .18);
}
.garden-sky { position: absolute; inset: 0 0 auto 0; height: 46%; pointer-events: none; overflow: hidden; }
.garden-cloud, .garden-petal { position: absolute; display: block; }
.garden-cloud { height: 28px; border-radius: 999px; background: rgba(255, 255, 255, .82); }
.garden-cloud::before, .garden-cloud::after { content: ""; position: absolute; background: inherit; border-radius: 50%; }
.garden-cloud-a { width: 92px; top: 28px; left: 12%; animation: garden-drift 18s linear infinite; }
.garden-cloud-a::before { width: 36px; height: 36px; left: 14px; top: -16px; }
.garden-cloud-a::after { width: 28px; height: 28px; left: 42px; top: -12px; }
.garden-cloud-b { width: 70px; top: 64px; left: 68%; animation: garden-drift 24s linear infinite reverse; }
.garden-cloud-b::before { width: 26px; height: 26px; left: 12px; top: -12px; }
.garden-petal { width: 12px; height: 16px; border-radius: 70% 10% 70% 10%; background: #f3b7cf; opacity: .85; }
.garden-petal-a { top: 10%; left: 30%; animation: garden-fall 9s linear infinite; }
.garden-petal-b { top: 0; left: 54%; background: #f7d48a; animation: garden-fall 12s linear infinite 2s; }
.garden-petal-c { top: 16%; left: 78%; background: #f7c3d4; animation: garden-fall 11s linear infinite 4s; }
.garden-flutter {
  position: absolute;
  z-index: 4;
  width: 96px;
  height: 96px;
  border: 0;
  border-radius: 50%;
  background: rgba(255, 255, 255, .62);
  box-shadow: 0 8px 18px rgba(104, 86, 110, .12);
  font-size: 2.1rem;
  cursor: pointer;
}
.garden-flutter-a { left: 7%; top: 18%; }
.garden-flutter-b { right: 8%; top: 24%; }
.garden-flutter.is-away { animation: garden-flutter-off 700ms ease; }
.garden-world-bar {
  position: absolute;
  z-index: 5;
  top: 10px;
  left: 12px;
  right: 12px;
  display: flex;
  justify-content: space-between;
  gap: 10px;
  pointer-events: none;
}
.garden-world-bar-group { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 8px; }
.garden-round {
  pointer-events: auto;
  min-width: 96px;
  min-height: 96px;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 2px;
  padding: 8px 10px;
  border: 0;
  border-radius: 24px;
  background: rgba(255, 252, 248, .92);
  color: #5c3d4c;
  box-shadow: 0 8px 18px rgba(104, 86, 110, .14);
  font: inherit;
  font-weight: 800;
  line-height: 1.1;
  cursor: pointer;
}
.garden-round:focus-visible { outline: 4px solid #755299; outline-offset: 3px; }
.garden-round-sprite { width: 40px; height: 40px; }
.garden-round-main { background: #fff0f6; }
.garden-round-main.is-waiting { animation: garden-ready-glow 1.6s ease-in-out infinite; }
.garden-round-grow { background: linear-gradient(180deg, #fff6d8, #ffe1f0); }
.garden-stage, .garden-live { flex: 1; min-height: 0; display: flex; }
.garden-world .garden-editor {
  flex: 1;
  min-height: 0;
  display: flex;
  flex-direction: column;
  margin: 0;
  padding: 0;
  border: 0;
  border-radius: 0;
  background: transparent;
}
.garden-world .iso-scene {
  flex: 1;
  width: 100%;
  min-height: 0;
  align-items: center;
  justify-content: center;
  overflow: auto;
  padding-top: 76px;
  padding-bottom: 8px;
}
.garden-world .iso-scene:not(.garden-zoomed) .iso-board {
  width: min(88%, 920px) !important;
}
.garden-world .garden-edit-scroll {
  max-height: none;
  min-height: 0;
  padding: 0;
  border: 0;
  border-radius: 0;
  background: transparent;
}
.garden-world .iso-board { filter: drop-shadow(0 18px 12px rgba(90, 120, 70, .18)); }
.garden-world .iso-label {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  overflow: hidden;
  clip-path: inset(50%);
  white-space: nowrap;
}
.garden-world .garden-editor button.iso-tile.garden-edit-cell {
  position: absolute;
  min-width: 0;
  min-height: 0;
  width: auto;
  height: auto;
  padding: 0;
  display: block;
  border: 0;
  border-radius: 0;
  outline: none;
  background: transparent;
  box-shadow: none;
  color: inherit;
}
.garden-world .garden-editor button.iso-object {
  position: absolute;
  display: flex;
  flex-direction: column;
  align-items: center;
  aspect-ratio: 1 / 1;
  min-width: 0;
  min-height: 0;
  width: auto;
  height: auto;
  padding: 0;
  border: 0;
  border-radius: 0;
  outline: none;
  background: transparent;
  box-shadow: none;
  color: inherit;
}
.garden-world .iso-tile { cursor: pointer; }
.garden-world .iso-tile:focus-visible { outline: 3px solid #755299; outline-offset: 2px; }
.garden-world .iso-tile::after {
  content: "";
  position: absolute;
  left: 8%;
  right: 8%;
  top: 18%;
  bottom: 8%;
  pointer-events: none;
  clip-path: polygon(50% 0, 100% 42%, 50% 84%, 0 42%);
}
.garden-world .iso-tile.is-placement-preview::after { background: rgba(98, 186, 122, .42); }
.garden-world .iso-tile.is-placement-blocked::after,
.garden-world .iso-tile.is-drop-blocked::after { background: rgba(214, 112, 86, .38); }
.garden-world .iso-tile.is-drop-target::after { background: rgba(98, 186, 122, .55); }
.garden-world .iso-tile.is-cursor::after { box-shadow: inset 0 0 0 4px rgba(57, 126, 137, .9); }
.garden-world .iso-tile.is-fresh .iso-floor { animation: garden-paint 420ms ease; }
.garden-whisper {
  align-self: center;
  z-index: 5;
  margin: 0 12px 6px;
  padding: 8px 16px;
  border-radius: 999px;
  background: rgba(255, 252, 248, .94);
  color: #5c3d4c;
  font-weight: 800;
  box-shadow: 0 8px 16px rgba(104, 86, 110, .12);
}
.garden-toybox {
  position: relative;
  z-index: 5;
  display: flex;
  flex-direction: row;
  align-items: center;
  gap: 10px;
  padding: 4px 12px 12px;
  background: linear-gradient(180deg, rgba(255, 252, 248, 0), rgba(255, 250, 246, .94) 28%);
}
.garden-toybox-tools { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; flex: none; max-width: 320px; }
.garden-world .garden-editor .garden-toybox button,
.garden-world .garden-shelf-card { min-width: 96px; min-height: 96px; }
.garden-world .garden-shelf { flex: 1; margin: 0; padding: 4px 4px 8px; }
.garden-world .garden-shelf-card { flex-basis: 156px; width: 156px; height: 128px; padding: 6px; gap: 2px; overflow-wrap: normal; }
.garden-world .garden-shelf-card b { font-size: .92rem; line-height: 1.25; text-align: center; }
.garden-world .garden-item-sprite,
.garden-world .garden-editor-companions { width: 64px; height: 64px; flex-basis: 64px; }
.garden-world.is-arranging .iso-scene { padding-top: 56px; overflow: hidden; }
.garden-world.is-arranging .iso-scene:not(.garden-zoomed) .iso-board { width: min(70%, 680px) !important; }
.garden-world .garden-decor-shop {
  position: absolute;
  z-index: 6;
  left: 16px;
  right: 16px;
  bottom: 16px;
  margin: 0;
  padding: 16px;
  border: 0;
  border-radius: 24px;
  background: rgba(255, 250, 246, .97);
  box-shadow: 0 18px 40px rgba(90, 60, 80, .18);
}
.garden-world .garden-shop-close { display: inline-flex; min-width: 96px; min-height: 64px; }
.garden-world .garden-decor-choice { min-height: 112px; }
.garden-world .garden-decor-choice .asset-sprite { width: 64px; height: 64px; }
.garden-world .iso-object.is-ready .iso-object-img { animation: garden-ready-glow 1.4s ease-in-out infinite; }
.garden-world .iso-object.is-chosen .iso-object-img,
.garden-world .iso-object.is-chosen .garden-map-companions { animation: garden-hold 1.5s ease-in-out infinite; }
.garden-world .iso-object.is-plop .iso-object-img,
.garden-world .iso-object.is-boop .iso-object-img,
.garden-world .iso-object.is-hopping .garden-map-companions { animation: garden-plop 520ms cubic-bezier(.2, 1.45, .36, 1); }
@keyframes garden-drift { from { transform: translateX(0); } to { transform: translateX(36px); } }
@keyframes garden-fall { from { transform: translateY(-10px) rotate(0deg); } to { transform: translateY(280px) rotate(180deg); } }
@keyframes garden-flutter-off { 40% { transform: translate(30px, -46px) scale(1.15); } to { transform: none; } }
@keyframes garden-hold { 50% { transform: translateY(-12px); } }
@keyframes garden-plop { 0% { transform: translateY(8px) scale(.84); } 55% { transform: translateY(-16px) scale(1.06); } 100% { transform: translateY(0) scale(1); } }
@keyframes garden-paint { from { filter: brightness(1.35); } to { filter: none; } }
@keyframes garden-ready-glow { 50% { filter: drop-shadow(0 0 8px rgba(255, 214, 110, .95)); transform: translateY(-3px); } }
@media (max-width: 700px) {
  .garden-world .garden-edit-scroll { max-height: none; }
  .garden-whisper { margin-bottom: 4px; }
  .garden-flutter { top: 108px; }
}
@media (prefers-reduced-motion: reduce) {
  .garden-cloud, .garden-petal, .garden-flutter, .garden-round-main.is-waiting,
  .garden-world .iso-object.is-ready .iso-object-img,
  .garden-world .iso-object.is-chosen .iso-object-img,
  .garden-world .iso-object.is-chosen .garden-map-companions { animation: none !important; }
}
