:root{
  --text:#4b3225;--muted:#7c695c;--green:#4f735b;--green-dark:#36523f;
  --gold:#b58a52;--line:rgba(255,255,255,.38)
}
*{box-sizing:border-box}
html,body{width:100%;height:100%;margin:0;overflow:hidden;overscroll-behavior:none;background:#e9dfd0}
body{font-family:"Zen Old Mincho","Yu Mincho",serif;color:var(--text);-webkit-font-smoothing:antialiased}
button{font:inherit}
.app{position:fixed;inset:0;overflow:hidden;touch-action:none}
.background{position:absolute;inset:-2%;background:
linear-gradient(rgba(242,235,224,.18),rgba(230,219,203,.24)),
url("./assets/background.png") center center/cover no-repeat;filter:saturate(.82) brightness(.96);transform:scale(1.03)}
.background::after{content:"";position:absolute;inset:0;background:
radial-gradient(circle at 50% 14%,rgba(255,249,238,.66),transparent 34%),
linear-gradient(180deg,rgba(255,255,255,.08),rgba(73,58,42,.10))}
.world-canvas{position:absolute;inset:0;width:100%;height:100%;display:block;touch-action:none}
.fixed-header{position:absolute;z-index:15;top:max(26px,env(safe-area-inset-top));left:50%;transform:translateX(-50%);width:min(86vw,620px);text-align:center;pointer-events:none;text-shadow:0 1px 0 rgba(255,255,255,.55)}
.fixed-header__eyebrow{margin:0;color:#a87d49;font-size:10px;letter-spacing:.30em}
.fixed-header__title{margin:8px 0 0;font-size:clamp(34px,8.8vw,54px);font-weight:500;letter-spacing:.08em}
.fixed-header__lead{margin:10px 0 0;font-size:clamp(12px,3.3vw,15px);line-height:1.85;color:rgba(75,50,37,.80)}
.selection-panel{position:absolute;z-index:20;left:50%;bottom:max(50px,calc(env(safe-area-inset-bottom) + 38px));transform:translateX(-50%);width:min(calc(100% - 24px),700px);padding:16px 18px;border:1px solid rgba(255,255,255,.46);border-radius:28px;background:rgba(255,255,255,.22);box-shadow:0 18px 50px rgba(42,31,23,.16);backdrop-filter:blur(16px) saturate(1.1);-webkit-backdrop-filter:blur(16px) saturate(1.1);touch-action:auto}
.selection-panel__top{display:flex;align-items:center;justify-content:space-between;gap:12px}
.selection-count{margin:0;color:rgba(75,50,37,.86);font-size:13px}
.text-button{border:0;background:transparent;color:rgba(75,50,37,.76);font-size:12px;cursor:pointer}
.selected-chips{display:flex;align-items:center;flex-wrap:wrap;gap:7px;min-height:34px;max-height:68px;overflow:auto;margin:10px 0 12px;padding:8px 12px;border:1px solid rgba(255,255,255,.26);border-radius:18px;background:rgba(255,255,255,.10)}
.selected-chip{padding:6px 10px;border-radius:999px;color:#314a39;background:rgba(230,238,231,.56);font-size:10px}
.placeholder{color:rgba(75,50,37,.56);font-size:11px}
.submit-button{display:flex;align-items:center;justify-content:center;gap:22px;width:100%;min-height:54px;border:1px solid rgba(255,255,255,.55);border-radius:22px;color:#fff;background:linear-gradient(135deg,rgba(79,115,91,.92),rgba(54,82,63,.95));box-shadow:0 10px 22px rgba(53,84,65,.22);cursor:pointer;font-size:16px}
.submit-button:disabled{opacity:.50;cursor:default}
.drag-guide{position:absolute;z-index:16;left:50%;bottom:max(12px,env(safe-area-inset-bottom));transform:translateX(-50%);margin:0;color:rgba(255,255,255,.88);font-size:11px;letter-spacing:.03em;text-shadow:0 1px 8px rgba(40,30,22,.45);pointer-events:none}
.modal[hidden]{display:none}
.modal{position:fixed;z-index:100;inset:0;display:grid;place-items:center;padding:24px}
.modal__backdrop{position:absolute;inset:0;background:rgba(48,35,27,.36);backdrop-filter:blur(8px)}
.modal__card{position:relative;z-index:2;width:min(100%,420px);padding:28px 24px 24px;border:1px solid rgba(255,255,255,.80);border-radius:24px;background:rgba(255,252,247,.96);box-shadow:0 24px 70px rgba(42,29,21,.24);text-align:center}
.modal__close{position:absolute;right:12px;top:10px;width:36px;height:36px;border:0;border-radius:50%;color:var(--muted);background:transparent;font-size:24px}
.modal__eyebrow{margin:0;color:var(--gold);font-size:10px;letter-spacing:.28em}
.modal__title{margin:10px 0 0;font-size:23px;font-weight:500}
.modal__text{margin:16px 0 0;color:var(--muted);font-size:13px;line-height:1.9}
.modal__button{width:100%;min-height:46px;margin-top:22px;border:1px solid rgba(75,50,37,.14);border-radius:14px;color:var(--text);background:#fff}
