/* =========================================================
   誘い板 — コルクの掲示板に、画鋲で貼られた募集
   意匠の決めごと:
     ・紙に角丸は無い(2〜4px)。円は画鋲と顔だけ
     ・貼り紙は一枚ずつ違う角度で傾く(--rot)
     ・破線は「まだ何も貼られていない場所」にだけ使う
     ・押すと沈む。浮いているものは影が下に落ちる
   ========================================================= */

:root{
  /* 板 */
  --board:#c9ad82;
  --board-deep:#b8996b;
  --grain:rgba(120,88,52,.20);
  --grain2:rgba(92,66,38,.13);
  --frame:#8a6540;
  --frame-hi:#a97f52;

  /* 紙 */
  --paper:#fffdf6;
  --paper-2:#f4eddc;
  --paper-edge:#e2d8c1;
  --fiber:rgba(150,130,95,.055);

  /* 字 */
  --ink:#332f27;
  --ink-soft:#6d6557;
  --ink-faint:#79715f;
  /* 板の地に直接置く字（紙の上より濃くしないと沈む） */
  --on-board:#41392d;
  --on-board-strong:#2b261e;

  /* 線 */
  --line:#ded3bb;
  --line-strong:#c4b797;

  /* 画鋲・印 */
  --pin:#cf4033;
  --pin-deep:#9b2b21;
  --pin-text:#b8342a;   /* 紙の上に置く赤（画鋲の色そのままだと薄い） */
  --pin-b:#2f7d9b;
  --pin-g:#5a8f52;
  --seal:#c0392b;

  /* 付箋・マステ */
  --fusen:#fbe58a;
  --fusen-edge:#e3c95c;
  --fusen-b:#bfe3ef;
  --fusen-b-edge:#8fc6d8;
  --tape:rgba(247,226,150,.72);
  --tape-edge:rgba(190,160,80,.5);
  --fusen-ink:#3d3418;

  /* 状態 */
  --ok:#3f8f5e;
  --danger:#b4402f;

  /* 影 */
  --lift:0 7px 16px rgba(70,45,20,.26), 0 2px 4px rgba(70,45,20,.20);
  --lift-lg:0 16px 34px rgba(70,45,20,.34), 0 3px 8px rgba(70,45,20,.22);
  --press:0 2px 5px rgba(70,45,20,.28);

  /* 寸法 */
  --maxw:560px;
  --railh:56px;
  --shelfh:66px;
  --ease:cubic-bezier(.22,.61,.36,1);
}

@media (prefers-color-scheme:dark){
  :root{
    --board:#2f2822;
    --board-deep:#241e19;
    --grain:rgba(255,228,190,.055);
    --grain2:rgba(0,0,0,.28);
    --frame:#3d322a;
    --frame-hi:#54453a;

    --paper:#3a332b;
    --paper-2:#312b24;
    --paper-edge:#4a4137;
    --fiber:rgba(255,240,210,.03);

    --ink:#f2ebdd;
    --ink-soft:#bdb3a1;
    --ink-faint:#a99f8c;
    --on-board:#c9c0ad;
    --on-board-strong:#f2ebdd;

    --line:#4d4438;
    --line-strong:#665a4a;

    --pin:#e2594a;
    --pin-deep:#a63428;
    --pin-text:#f08a7c;
    --pin-b:#4e9fbd;
    --pin-g:#71ab68;
    --seal:#c8473a;

    --fusen:#6e6234;
    --fusen-edge:#8e7d3e;
    --fusen-b:#33525e;
    --fusen-b-edge:#446a79;
    --tape:rgba(150,128,66,.42);
    --tape-edge:rgba(190,165,95,.34);
    --fusen-ink:#f4eee0;

    --ok:#5cb37e;
    --danger:#e0705c;

    --lift:0 7px 18px rgba(0,0,0,.55), 0 2px 4px rgba(0,0,0,.4);
    --lift-lg:0 18px 40px rgba(0,0,0,.62), 0 3px 8px rgba(0,0,0,.45);
    --press:0 2px 5px rgba(0,0,0,.5);
  }
}

*{box-sizing:border-box;margin:0;padding:0}
html{-webkit-text-size-adjust:100%}

body{
  font-family:'Zen Kurenaido','Yu Gothic','Hiragino Sans','Noto Sans JP',system-ui,sans-serif;
  color:var(--ink);
  font-size:16px;
  line-height:1.78;
  letter-spacing:.015em;
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;

  /* コルクの粒 */
  background-color:var(--board);
  background-image:
    radial-gradient(circle at 21% 27%, var(--grain) 0 1.5px, transparent 1.7px),
    radial-gradient(circle at 68% 61%, var(--grain2) 0 1.9px, transparent 2.1px),
    radial-gradient(circle at 44% 84%, var(--grain) 0 1.1px, transparent 1.3px),
    radial-gradient(circle at 85% 14%, var(--grain2) 0 1.3px, transparent 1.5px),
    radial-gradient(circle at 8% 68%, var(--grain) 0 1.7px, transparent 1.9px);
  background-size:37px 41px, 53px 47px, 29px 33px, 61px 59px, 43px 39px;
}

a{color:inherit;text-decoration:none}
button{font:inherit;color:inherit;cursor:pointer;border:none;background:none}
input,textarea,select{font:inherit;color:inherit}
::selection{background:var(--fusen);color:var(--ink)}
::-webkit-scrollbar{width:10px;height:10px}
::-webkit-scrollbar-thumb{background:var(--line-strong);border-radius:99px;border:3px solid var(--board)}

.hand{font-family:'Yusei Magic','Zen Kurenaido',sans-serif;font-weight:400;letter-spacing:.05em}

/* ================= 起動 ================= */
.boot{
  position:fixed;inset:0;z-index:200;display:grid;place-content:center;justify-items:center;gap:18px;
  background:var(--board);
  transition:opacity .45s var(--ease);
}
.boot.gone{opacity:0;pointer-events:none}
.boot .sheet-mark{
  width:96px;height:118px;background:var(--paper);border:1px solid var(--paper-edge);
  box-shadow:var(--lift-lg);position:relative;transform:rotate(-3deg);
  animation:sway 2.6s var(--ease) infinite;
}
.boot .sheet-mark::before{
  content:"";position:absolute;top:-8px;left:50%;transform:translateX(-50%);
  width:17px;height:17px;border-radius:50%;
  background:radial-gradient(circle at 34% 30%, #fff 0 2px, var(--pin) 3px 100%);
  box-shadow:0 2px 4px rgba(0,0,0,.4);
}
.boot .sheet-mark b{
  position:absolute;inset:0;display:grid;place-content:center;
  font-family:'Yusei Magic',sans-serif;font-size:34px;color:var(--ink);
}
@keyframes sway{0%,100%{transform:rotate(-3deg) translateY(0)}50%{transform:rotate(2deg) translateY(-6px)}}
.boot p{font-family:'Yusei Magic',sans-serif;font-size:13px;color:var(--ink-soft);letter-spacing:.16em}

/* ================= 骨格 ================= */
.app{
  max-width:var(--maxw);margin:0 auto;min-height:100dvh;position:relative;
  padding-bottom:calc(var(--shelfh) + env(safe-area-inset-bottom) + 26px);
}
@media(min-width:600px){
  .app{
    border-left:9px solid var(--frame);border-right:9px solid var(--frame);
    box-shadow:inset 5px 0 8px -6px rgba(0,0,0,.4), inset -5px 0 8px -6px rgba(0,0,0,.4), 0 0 60px rgba(0,0,0,.18);
  }
}

/* ---- 上の木の桟 ---- */
.rail{
  position:sticky;top:0;z-index:50;height:calc(var(--railh) + env(safe-area-inset-top));
  padding:env(safe-area-inset-top) 14px 0;
  display:flex;align-items:center;gap:10px;
  background:
    repeating-linear-gradient(90deg, rgba(0,0,0,.05) 0 2px, transparent 2px 7px),
    linear-gradient(180deg, var(--frame-hi) 0%, var(--frame) 62%, rgba(0,0,0,.28) 100%);
  box-shadow:0 4px 10px rgba(50,30,10,.35);
}
.fuda{
  display:inline-flex;align-items:center;gap:7px;
  background:linear-gradient(180deg,#f3e3c4,#e3cea4);
  color:#4a3520;border:1px solid #c9ab7c;
  padding:5px 13px 6px;transform:rotate(-1.2deg);
  box-shadow:0 3px 6px rgba(0,0,0,.32);
  font-family:'Yusei Magic',sans-serif;font-size:17px;letter-spacing:.14em;
  clip-path:polygon(6px 0,calc(100% - 6px) 0,100% 50%,calc(100% - 6px) 100%,6px 100%,0 50%);
}
.rail .right{margin-left:auto;text-align:right;line-height:1.42;color:#f6e7cc;font-size:11.5px}
.rail .right b{display:block;font-size:12.5px;color:#fff8e8;letter-spacing:.04em}
.rail .right .comm{
  display:inline-block;background:var(--tape);border-left:1px dashed var(--tape-edge);border-right:1px dashed var(--tape-edge);
  color:#4a3a18;padding:1px 8px;transform:rotate(-1.5deg);font-size:11px;
}

/* ---- 画面 ---- */
.screen{display:none;padding:20px 16px 0}
.screen.on{display:block;animation:viewIn .34s var(--ease)}
@keyframes viewIn{from{opacity:0;transform:translateY(9px)}to{opacity:1;transform:none}}

.vhead{margin:0 2px 16px}
.vhead h1{
  font-family:'Yusei Magic',sans-serif;font-size:23px;font-weight:400;letter-spacing:.06em;
  display:inline-block;line-height:1.5;color:var(--on-board-strong);
}
.vhead h1::after{
  content:"";display:block;height:7px;margin-top:1px;
  background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 120 7' preserveAspectRatio='none'%3E%3Cpath d='M1 4.4C22 1.6 41 5.4 62 3.2s37 2.6 57-.4' fill='none' stroke='%23cf4033' stroke-width='2.4' stroke-linecap='round'/%3E%3C/svg%3E") no-repeat center/100% 100%;
  opacity:.75;
}
.vhead p{color:var(--on-board);font-size:13px;margin-top:7px;line-height:1.8}
.vhead p b{color:var(--ink);background:linear-gradient(transparent 58%, var(--fusen) 58% 94%, transparent 94%);padding:0 2px}

/* ---- 切替(募集/名簿) ---- */
.seg{
  display:flex;gap:5px;margin-bottom:14px;
  background:rgba(0,0,0,.10);padding:5px;border-radius:3px;
  box-shadow:inset 0 2px 4px rgba(0,0,0,.18);
}
.seg button{
  flex:1;padding:9px 0;font-family:'Yusei Magic',sans-serif;font-size:14px;letter-spacing:.1em;
  color:var(--on-board);border-radius:2px;transition:all .2s var(--ease);
}
.seg button.on{
  background:var(--paper);color:var(--ink);
  box-shadow:0 2px 5px rgba(70,45,20,.3);border:1px solid var(--paper-edge);
}

/* ---- 趣味の付箋 ---- */
.chips{display:flex;gap:9px;overflow-x:auto;padding:6px 16px 16px;margin:0 -16px;scrollbar-width:none}
.chips::-webkit-scrollbar{display:none}
.chip{
  flex:0 0 auto;white-space:nowrap;
  background:var(--paper-2);color:var(--ink-soft);
  border:1px solid var(--paper-edge);border-bottom-width:2px;
  padding:6px 13px;font-size:13.5px;border-radius:1px;
  box-shadow:0 3px 6px rgba(70,45,20,.18);
  transform:rotate(-1deg);transition:all .18s var(--ease);
}
.chips .chip:nth-child(2n){transform:rotate(1.2deg)}
.chips .chip:nth-child(3n){transform:rotate(-.4deg)}
.chip .n{font-size:11px;color:var(--ink-faint);margin-left:.4em}
.chip:hover{transform:rotate(0) translateY(-2px);box-shadow:0 6px 12px rgba(70,45,20,.24)}
.chip.mine{background:var(--fusen);border-color:var(--fusen-edge);color:var(--ink)}
.chip.on{
  background:var(--ink);color:var(--paper);border-color:var(--ink);
  box-shadow:0 4px 9px rgba(0,0,0,.4);
}
.chip.on .n{color:rgba(255,255,255,.6)}

/* ================= 貼り紙 ================= */
.post{
  position:relative;margin:0 0 26px;padding:20px 18px 15px;
  background:var(--paper);
  background-image:repeating-linear-gradient(0deg, transparent 0 3px, var(--fiber) 3px 4px);
  border:1px solid var(--paper-edge);border-radius:2px;
  box-shadow:var(--lift);
  transform:rotate(var(--rot,0deg));
  transition:transform .22s var(--ease), box-shadow .22s var(--ease);
}
.post:hover{transform:rotate(var(--rot,0deg)) translateY(-3px);box-shadow:var(--lift-lg)}

/* 画鋲 */
.post.pinned::before{
  content:"";position:absolute;top:-9px;left:50%;transform:translateX(-50%);
  width:19px;height:19px;border-radius:50%;z-index:3;
  background:radial-gradient(circle at 33% 29%, rgba(255,255,255,.95) 0 2.5px, var(--pin) 3.5px 68%, var(--pin-deep) 100%);
  box-shadow:0 3px 5px rgba(0,0,0,.42), inset 0 -2px 3px rgba(0,0,0,.3);
}
.post.pin-b::before{background:radial-gradient(circle at 33% 29%, rgba(255,255,255,.95) 0 2.5px, var(--pin-b) 3.5px 68%, #1e5568 100%)}
.post.pin-g::before{background:radial-gradient(circle at 33% 29%, rgba(255,255,255,.95) 0 2.5px, var(--pin-g) 3.5px 68%, #3a6634 100%)}

/* マスキングテープ */
.post.taped::before{
  content:"";position:absolute;top:-9px;left:50%;
  width:78px;height:21px;transform:translateX(-50%) rotate(-2.6deg);z-index:3;
  background:var(--tape);
  border-left:1px dashed var(--tape-edge);border-right:1px dashed var(--tape-edge);
  box-shadow:0 1px 2px rgba(0,0,0,.18);
}

.post-head{display:flex;align-items:center;gap:7px;flex-wrap:wrap;margin-bottom:9px}

/* 趣味＝小さい付箋 */
.tag-hobby{
  background:var(--fusen);border:1px solid var(--fusen-edge);color:var(--ink);
  padding:3px 11px;font-size:12.5px;border-radius:1px;transform:rotate(-1.4deg);
  box-shadow:1px 2px 3px rgba(70,45,20,.18);
}
/* ゆるさ＝ゴム印 */
.tag-kind{
  font-family:'Yusei Magic',sans-serif;font-size:11.5px;letter-spacing:.12em;
  padding:2px 10px;border:1.5px solid var(--ink-faint);color:var(--ink-soft);
  border-radius:2px;transform:rotate(1.1deg);
}
.tag-kind.kessen{
  border-color:var(--pin-text);color:var(--pin-text);
  box-shadow:inset 0 0 0 1px color-mix(in srgb, var(--pin-text) 22%, transparent);
}
.tag-mine{
  margin-left:auto;font-size:11px;color:var(--pin-text);letter-spacing:.06em;
  font-family:'Yusei Magic',sans-serif;
}

.post-title{
  font-family:'Yusei Magic',sans-serif;font-size:19px;font-weight:400;
  line-height:1.62;letter-spacing:.03em;color:var(--ink);
}
.post-note{font-size:13.5px;color:var(--ink-soft);line-height:1.8;margin-top:6px}

.post-meta{
  display:flex;flex-wrap:wrap;gap:5px 15px;margin-top:12px;
  font-size:13px;color:var(--ink-soft);
}
.post-meta span{display:inline-flex;align-items:center;gap:.42em}
.post-meta .icon{width:15px;height:15px;color:var(--pin);flex:0 0 auto}
.post-meta .soon{color:var(--pin-text);font-weight:700}

.post-foot{
  display:flex;align-items:center;gap:10px;margin-top:14px;padding-top:13px;
  border-top:1px solid var(--line);
}
.faces{display:flex;align-items:center;flex:0 0 auto}
.face{
  width:29px;height:29px;border-radius:50%;margin-right:-8px;
  display:grid;place-content:center;font-size:12.5px;color:#fff;
  border:2px solid var(--paper);box-shadow:0 1px 3px rgba(0,0,0,.28);
  font-family:'Yusei Magic',sans-serif;
}
.count{font-size:12px;color:var(--ink-faint);margin-left:15px;line-height:1.45}
.count b{display:block;color:var(--pin-text);font-size:13px;font-family:'Yusei Magic',sans-serif;letter-spacing:.04em}
.count .full{display:block;color:var(--ink-faint);font-size:13px}

/* 「行く」＝朱の判子 */
.go{
  margin-left:auto;flex:0 0 auto;
  font-family:'Yusei Magic',sans-serif;font-size:15px;letter-spacing:.12em;
  padding:10px 21px;border-radius:3px;
  background:var(--seal);color:#fff9f2;
  border:1.5px solid rgba(0,0,0,.14);
  box-shadow:var(--lift);transform:rotate(-1deg);
  transition:all .14s var(--ease);
}
.go:hover{filter:brightness(1.07);transform:rotate(-1deg) translateY(-2px)}
.go:active{transform:rotate(-1deg) translateY(2px);box-shadow:var(--press)}
.go.on{
  background:transparent;color:var(--seal);
  border:1.5px solid var(--seal);box-shadow:none;
}
.go.host{
  background:transparent;color:var(--ink-faint);border:1.5px dashed var(--line-strong);
  box-shadow:none;cursor:default;transform:none;font-size:13px;letter-spacing:.06em;
}
.go.host:hover{filter:none;transform:none}

/* ================= 名簿 ================= */
.member{
  position:relative;display:grid;grid-template-columns:auto 1fr;gap:13px;align-items:start;
  background:var(--paper);border:1px solid var(--paper-edge);border-radius:2px;
  padding:14px 16px;margin-bottom:16px;box-shadow:var(--lift);
  transform:rotate(var(--rot,0deg));
}
.member::before{
  content:"";position:absolute;top:-7px;left:22px;
  width:15px;height:15px;border-radius:50%;
  background:radial-gradient(circle at 33% 29%, rgba(255,255,255,.95) 0 2px, var(--pin-b) 3px 68%, #1e5568 100%);
  box-shadow:0 2px 4px rgba(0,0,0,.36);
}
.member .face{width:42px;height:42px;font-size:17px;margin:0;border-width:2.5px}
.member .nm{font-family:'Yusei Magic',sans-serif;font-size:16px;letter-spacing:.05em;line-height:1.5}
.member .hb{display:flex;flex-wrap:wrap;gap:6px;margin-top:7px}
.member .hb button{
  background:var(--paper-2);border:1px solid var(--paper-edge);color:var(--ink-soft);
  padding:2px 10px;font-size:12px;border-radius:1px;transition:all .16s var(--ease);
}
.member .hb button:hover{background:var(--fusen);border-color:var(--fusen-edge);color:var(--ink)}
.member .hb .none{font-size:12.5px;color:var(--ink-faint)}

/* ================= 書き込む(フォーム) ================= */
.paper{
  background:var(--paper);
  background-image:repeating-linear-gradient(0deg, transparent 0 3px, var(--fiber) 3px 4px);
  border:1px solid var(--paper-edge);border-radius:2px;
  box-shadow:var(--lift);padding:22px 18px 20px;position:relative;
  transform:rotate(-.35deg);
}
.paper::before{
  content:"";position:absolute;top:-10px;left:50%;
  width:96px;height:22px;transform:translateX(-50%) rotate(-1.8deg);
  background:var(--tape);border-left:1px dashed var(--tape-edge);border-right:1px dashed var(--tape-edge);
  box-shadow:0 1px 2px rgba(0,0,0,.16);
}

.field{margin-bottom:17px}
.field > label{
  display:block;font-family:'Yusei Magic',sans-serif;font-size:13.5px;letter-spacing:.06em;
  color:var(--ink);margin-bottom:7px;
}
.field .hint{font-family:'Zen Kurenaido',sans-serif;font-size:11.5px;color:var(--ink-faint);letter-spacing:0;margin-left:.6em}
.row2{display:grid;grid-template-columns:1fr 1fr;gap:11px}

.input{
  width:100%;padding:11px 13px;font-size:15px;
  background:var(--paper-2);color:var(--ink);
  border:1px solid var(--line-strong);border-radius:2px;
  transition:border-color .18s,box-shadow .18s,background .18s;
}
.input::placeholder{color:var(--ink-faint)}
.input:focus{
  outline:none;background:var(--paper);
  border-color:var(--pin);box-shadow:0 0 0 3px rgba(207,64,51,.18);
}
textarea.input{resize:vertical;min-height:64px;line-height:1.7}
select.input{cursor:pointer}

/* 選ぶ＝付箋を貼る */
.pick{display:flex;flex-wrap:wrap;gap:8px}
.pick button{
  background:var(--paper-2);border:1px solid var(--paper-edge);border-bottom-width:2px;
  color:var(--ink-soft);padding:7px 14px;font-size:13.5px;border-radius:1px;
  box-shadow:0 2px 4px rgba(70,45,20,.14);transform:rotate(-.7deg);
  transition:all .18s var(--ease);
}
.pick button:nth-child(2n){transform:rotate(.9deg)}
.pick button:hover{transform:rotate(0) translateY(-2px)}
.pick button.on{
  background:var(--fusen);border-color:var(--fusen-edge);color:var(--ink);
  box-shadow:0 4px 8px rgba(70,45,20,.22);
}

.addrow{display:flex;gap:9px;margin-top:10px}
.addrow .input{flex:1}
.btn-sm{
  font-family:'Yusei Magic',sans-serif;font-size:13.5px;letter-spacing:.08em;padding:0 17px;
  background:var(--paper-2);border:1px solid var(--line-strong);border-radius:2px;color:var(--ink);
  box-shadow:0 2px 4px rgba(70,45,20,.18);white-space:nowrap;transition:all .14s var(--ease);
}
.btn-sm:hover{background:var(--fusen);border-color:var(--fusen-edge)}
.btn-sm:active{transform:translateY(2px);box-shadow:none}

.submit{
  width:100%;margin-top:8px;padding:16px 0;
  font-family:'Yusei Magic',sans-serif;font-size:18px;letter-spacing:.18em;
  background:var(--seal);color:#fff9f2;border:1.5px solid rgba(0,0,0,.14);border-radius:3px;
  box-shadow:var(--lift);transition:all .14s var(--ease);
}
.submit:hover{filter:brightness(1.07);transform:translateY(-2px);box-shadow:var(--lift-lg)}
.submit:active{transform:translateY(2px);box-shadow:var(--press)}
.submit:disabled{
  background:var(--paper-2);color:var(--ink-faint);border:1px dashed var(--line-strong);
  box-shadow:none;transform:none;filter:none;cursor:not-allowed;
}

/* ================= 何も貼られていない場所 ================= */
/* 板の地に直接描く。紙が無い場所なので枠は破線 */
.empty{
  text-align:center;padding:46px 22px;border-radius:3px;
  border:2px dashed var(--line-strong);
  background:rgba(0,0,0,.06);
}
@media (prefers-color-scheme:dark){ .empty{background:rgba(0,0,0,.18)} }
.empty .mk{
  width:56px;height:56px;margin:0 auto 14px;border:2px dashed var(--line-strong);
  border-radius:50%;display:grid;place-content:center;transform:rotate(-4deg);
}
.empty .mk .icon{width:26px;height:26px;color:var(--on-board)}
.empty h3{font-family:'Yusei Magic',sans-serif;font-size:16px;font-weight:400;color:var(--on-board-strong);margin-bottom:6px;letter-spacing:.06em}
.empty p{font-size:13px;max-width:270px;margin:0 auto;color:var(--on-board);line-height:1.85}

/* ================= 板のきまり(メモ紙) ================= */
.memo{
  position:relative;margin-top:28px;padding:18px 18px 15px;
  background:var(--paper-2);border:1px solid var(--paper-edge);border-radius:2px;
  box-shadow:var(--lift);transform:rotate(.6deg);
}
.memo::before{
  content:"";position:absolute;top:-8px;right:24px;
  width:16px;height:16px;border-radius:50%;
  background:radial-gradient(circle at 33% 29%, rgba(255,255,255,.95) 0 2px, var(--pin-g) 3px 68%, #3a6634 100%);
  box-shadow:0 2px 4px rgba(0,0,0,.36);
}
.memo h4{font-family:'Yusei Magic',sans-serif;font-size:14.5px;font-weight:400;letter-spacing:.08em;margin-bottom:10px}
.memo li{
  list-style:none;font-size:13px;color:var(--ink-soft);line-height:1.95;
  padding-left:1.15em;position:relative;
}
.memo li::before{content:"・";position:absolute;left:0;color:var(--pin)}

.foot{padding:26px 4px 6px;font-size:11.5px;color:var(--on-board);line-height:1.95;text-align:center}
.foot b{color:var(--on-board-strong)}

.danger{
  font-family:'Yusei Magic',sans-serif;font-size:13px;letter-spacing:.06em;
  color:var(--ink-soft);background:var(--paper-2);
  border:1px solid var(--line-strong);border-radius:2px;padding:10px 18px;
  transition:all .16s var(--ease);
}
.danger:hover{border-color:var(--danger);color:var(--danger)}

/* ================= 下の木の棚 ================= */
.shelf{
  position:fixed;left:0;right:0;bottom:0;z-index:60;
  height:calc(var(--shelfh) + env(safe-area-inset-bottom));
  padding-bottom:env(safe-area-inset-bottom);
  background:
    repeating-linear-gradient(90deg, rgba(0,0,0,.05) 0 2px, transparent 2px 7px),
    linear-gradient(180deg, var(--frame-hi) 0%, var(--frame) 55%, rgba(0,0,0,.3) 100%);
  box-shadow:0 -5px 14px rgba(50,30,10,.4);
}
.shelf-in{max-width:var(--maxw);margin:0 auto;height:100%;display:flex;align-items:center;gap:8px;padding:0 12px}
.tab{
  flex:1;height:44px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1px;
  color:#fcf4e4;border-radius:2px;transition:all .22s var(--ease);position:relative;
}
.tab .icon{width:21px;height:21px}
.tab span{font-family:'Yusei Magic',sans-serif;font-size:11.5px;letter-spacing:.12em}
.tab:active{transform:scale(.94)}
.tab.on{
  background:var(--fusen);color:var(--fusen-ink);
  border:1px solid var(--fusen-edge);
  transform:rotate(-1.4deg) translateY(-3px);
  box-shadow:0 4px 8px rgba(0,0,0,.4);
}

/* ================= 通知(紙片) ================= */
.toast{
  position:fixed;left:50%;bottom:calc(var(--shelfh) + env(safe-area-inset-bottom) + 20px);
  transform:translate(-50%,12px) rotate(-1deg);
  background:var(--ink);color:var(--paper);
  font-family:'Yusei Magic',sans-serif;font-size:13.5px;letter-spacing:.05em;
  padding:11px 22px;border-radius:2px;box-shadow:var(--lift-lg);
  opacity:0;pointer-events:none;transition:all .32s var(--ease);z-index:120;
  max-width:calc(100% - 40px);text-align:center;
}
.toast.on{opacity:1;transform:translate(-50%,0) rotate(-1deg)}

@media(prefers-reduced-motion:reduce){
  *{animation-duration:.01ms !important;transition-duration:.01ms !important}
}
