/* Illustrated home only. Shared workbench styles live in style.css. */
body.island-home{background:#c0eafb;color:#183d64}
.island-page{
  min-height:100dvh;display:flex;flex-direction:column;align-items:center;
  padding:10px 12px 40px;gap:18px;
}
.exact-island{
  position:relative;width:min(100%,calc(100dvh * 1.40548));margin:0 auto;
  container-type:inline-size;isolation:isolate;
}
.island-art{width:100%;height:auto;display:block;user-select:none;pointer-events:none}
.map-control{
  position:absolute;z-index:2;background:transparent;border:0;border-radius:30px;
  min-height:44px;padding:0;cursor:pointer;touch-action:manipulation;
  -webkit-tap-highlight-color:transparent;transition:background .15s ease;
}
.map-control:active{background:#fff3}
.map-control:focus-visible{outline:4px solid #174a80;outline-offset:3px;box-shadow:0 0 0 7px #fff}
.sr-only{
  position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;
  clip-path:inset(50%);white-space:nowrap;border:0;
}
.map-date{
  position:absolute;left:57.8%;top:13.4%;width:16.4%;height:3.1%;display:grid;place-items:center;
  color:#674a33;font-size:clamp(8px,1.35cqw,14px);font-weight:700;white-space:nowrap;
  overflow:hidden;text-overflow:ellipsis;
  background:#f8f3ea;border-radius:10px;box-shadow:0 0 8px 9px #f8f3ea;
}
.map-duration{
  position:absolute;left:85.9%;top:25.2%;width:10.6%;height:3.7%;display:flex;
  align-items:center;justify-content:center;gap:.3cqw;white-space:nowrap;
  font-size:clamp(8px,1.5cqw,14px);font-weight:800;color:#614c41;
  background:#fdf3e4;border-radius:14px;box-shadow:0 0 8px 9px #fdf3e4;
}
.map-duration strong{font-size:clamp(13px,3.2cqw,26px);color:#ec775e}
.map-save{
  position:absolute;left:89.2%;top:2.55%;width:8.7%;height:3%;display:grid;place-items:center;
  border-radius:25px;background:#e5f5f4;color:#245648;font-size:clamp(8px,1.3cqw,12px);font-weight:700;
  white-space:nowrap;overflow:hidden;
}
.map-save.warn{background:#fdebd3;color:#8a5a24}
.map-footer{
  position:absolute;left:20%;top:94.8%;width:60%;height:4.5%;display:grid;place-items:center;
  background:#c1e8f8;color:#547c9d;font-size:clamp(7px,1.25cqw,12px);white-space:nowrap;overflow:hidden;
}
.island-plan-panel{
  width:min(100%,980px);margin:0 auto;background:#fffaf0;
}
/* Phone portrait: keep the whole artwork visible; no forced horizontal scroll. */
@media(orientation:portrait){
  .exact-island{width:100%;min-width:0}
  .island-page{padding:8px 8px 32px}
  .map-control{min-height:48px}
}
@media(max-width:520px){
  .island-plan-panel{padding:16px;border-radius:22px}
  .island-page{gap:12px}
}
