/* ハムメモリー Web版
   明るく柔らかい雰囲気にするため、ダークモードは使わず、いつも明るい配色にする。
   クリーム色の背景・やわらかいコーラル・丸みのある文字（Zen Maru Gothic）と丸いボタン。 */
:root{
  color-scheme: light;
  --bg:#fffaf3; --bg2:#fff1e6; --panel:#ffffff; --field:#fff7f0; --line:#f3e6d8;
  --ink:#4a3a30; --sub:#a08c7c; --accent:#f0896a; --accent-deep:#e0714f; --accent-ink:#fff;
  --accent-soft:#ffeae1; --butter:#ffe9a8; --mint:#dff3ea;
  --shadow:0 10px 30px rgba(224,113,79,.14); --shadow-card:0 14px 34px rgba(120,80,50,.16);
  --radius:22px; --bar:78px;
}
*{box-sizing:border-box}
[hidden]{display:none !important}   /* display を指定した要素でも hidden を効かせる */
html{-webkit-text-size-adjust:100%}
body{margin:0;color:var(--ink);
  font-family:"Zen Maru Gothic","Zen Kaku Gothic New",-apple-system,BlinkMacSystemFont,sans-serif;-webkit-font-smoothing:antialiased;
  background:
    radial-gradient(60vw 40vh at 0% 0%, #ffe3d6 0%, transparent 70%),
    radial-gradient(55vw 38vh at 100% 6%, #fff0bf 0%, transparent 70%),
    var(--bg);
  background-attachment:fixed;
  padding-bottom:calc(var(--bar) + env(safe-area-inset-bottom))}
button{font-family:inherit;cursor:pointer;color:inherit}
a{color:inherit}
main{max-width:560px;margin:0 auto;padding:0 18px}

.top{height:56px;display:flex;align-items:center;justify-content:center}
.brand{font-weight:900;font-size:18px;letter-spacing:.06em;text-decoration:none;color:var(--accent-deep)}
.brand::before{content:"";display:inline-block;width:10px;height:10px;border-radius:50%;background:var(--butter);
  box-shadow:14px 0 0 var(--accent-soft);margin-right:22px;vertical-align:2px}

/* ボタン */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;padding:12px 20px;border-radius:999px;
  border:1.5px solid var(--line);background:var(--panel);font-size:15px;font-weight:700;text-align:center;color:var(--ink);
  transition:transform .12s, box-shadow .12s, background .12s}
.btn.primary{background:linear-gradient(180deg,#f59a7c,var(--accent));border-color:transparent;color:var(--accent-ink);
  box-shadow:0 8px 20px rgba(240,137,106,.35)}
.btn.ghost{background:none;border-color:transparent;color:var(--accent-deep)}
.btn.big{padding:17px 24px;font-size:17px;width:100%}
.btn.small{padding:8px 14px;font-size:13px}
.btn:active{transform:scale(.97)}
.link{background:none;border:none;padding:0;font-size:12px;color:var(--sub);text-decoration:underline;text-underline-offset:3px}

/* 最初の画面 */
.start{padding:6px 0 26px;text-align:center;display:flex;flex-direction:column;align-items:center;gap:14px}
.hero-cards{position:relative;height:240px;width:100%;margin:6px 0 4px}
.hero-cards canvas{position:absolute;top:18px;left:50%;height:200px;width:auto;border-radius:8px;box-shadow:var(--shadow-card)}
.hero-cards canvas:nth-child(1){transform:translateX(-128%) rotate(-9deg)}
.hero-cards canvas:nth-child(2){transform:translateX(-50%) translateY(-10px);z-index:1;height:212px}
.hero-cards canvas:nth-child(3){transform:translateX(28%) rotate(8deg)}
.start h1{font-size:25px;line-height:1.5;margin:0;font-weight:900}
.start h1 em{font-style:normal;color:var(--accent-deep);background:linear-gradient(transparent 62%, var(--butter) 62%)}
.lead{margin:0 0 8px;color:var(--sub);font-size:14px;line-height:1.85;text-wrap:balance;word-break:auto-phrase}
.privacy{font-size:12px;color:var(--sub);margin:2px 0 0;text-wrap:balance;word-break:auto-phrase}
.support p{text-wrap:balance;word-break:auto-phrase}
.note{text-wrap:pretty}
.status{font-size:12px;color:var(--sub);margin:0;min-height:1em}
.status.err{color:#d9534f}
.status.busy{color:var(--accent-deep)}

/* カードの横スワイプ */
.editor{padding-top:6px}
.carousel-wrap{position:relative;margin:0 -18px}
.carousel{display:flex;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none;overscroll-behavior-x:contain}
.carousel::-webkit-scrollbar{display:none}
.slide{flex:0 0 100%;scroll-snap-align:center;display:flex;align-items:center;justify-content:center;
  height:min(60vh,560px);padding:16px 30px}
.slide canvas{display:block;max-width:100%;max-height:100%;width:auto;height:auto;border-radius:8px;box-shadow:var(--shadow-card)}
.nav{position:absolute;top:50%;transform:translateY(-50%);width:42px;height:42px;border-radius:50%;border:1.5px solid var(--line);
  background:var(--panel);font-size:24px;line-height:1;display:none;z-index:2;color:var(--accent-deep);box-shadow:var(--shadow)}
.nav.prev{left:8px}.nav.next{right:8px}
@media (hover:hover) and (min-width:600px){ .nav{display:block} }
.dots{display:flex;justify-content:center;gap:8px;margin-top:8px}
.dots button{width:9px;height:9px;border-radius:50%;border:none;padding:0;background:#f1dccd;transition:width .2s}
.dots button[aria-selected="true"]{background:var(--accent);width:22px;border-radius:5px}
.frame-name{text-align:center;font-size:14px;font-weight:700;margin:10px 0 0;color:var(--accent-deep)}
.tools{display:flex;justify-content:center;gap:8px;margin-top:12px}
.tools .btn[aria-expanded="true"]{background:var(--accent-soft);border-color:var(--accent);color:var(--accent-deep)}

/* 写真の調整（カードのすぐ下） */
.adjust{margin-top:12px;background:var(--panel);border:1.5px solid #ffd2c2;border-radius:var(--radius);padding:14px 16px;
  display:flex;flex-direction:column;gap:12px;box-shadow:var(--shadow)}
.adjust-hint{margin:0;font-size:12px;color:var(--sub);text-align:center}
.adjust-hint b{color:var(--accent-deep)}
.adjust-row{display:grid;grid-template-columns:3.2em 1fr auto;align-items:center;gap:10px}
.adjust-row:has(button){grid-template-columns:3.2em 1fr auto auto}
.adjust-row label{font-size:13px;font-weight:700}
.adjust-row input[type=range]{width:100%;accent-color:var(--accent);margin:0}
.adjust-row output{font-size:12px;color:var(--sub);min-width:3em;text-align:right;font-variant-numeric:tabular-nums}
.adjust-foot{display:flex;justify-content:space-between;align-items:center}
/* 調整中: カードを少し小さくして調整パネルと1画面に収め、ドラッグをカードの切り替えとぶつけない */
.editor.adjusting .slide{height:min(46vh,440px)}
.editor.adjusting .carousel{overflow-x:hidden}
.editor.adjusting .slide canvas{touch-action:none;cursor:grab;outline:2.5px dashed var(--accent);outline-offset:6px}
.editor.adjusting .slide canvas:active{cursor:grabbing}

/* 入力 */
.form{display:flex;flex-direction:column;gap:16px;margin:22px 0 8px;background:var(--panel);border:1.5px solid var(--line);
  border-radius:var(--radius);padding:18px;box-shadow:var(--shadow)}
.field{display:flex;flex-direction:column;gap:7px;min-width:0}
.field > label{font-size:13px;font-weight:700;display:flex;align-items:baseline;gap:6px}
.field > label small{font-size:11px;color:var(--sub);font-weight:500}
.field input:not([type=range]){width:100%;padding:12px 14px;border:1.5px solid var(--line);border-radius:14px;
  background:var(--field);color:var(--ink);font-size:16px;font-family:inherit;min-width:0}
.field input::placeholder{color:#cbb9aa}
.field input:focus{outline:none;border-color:var(--accent);background:#fff}
.unit{position:relative}
.unit input{padding-right:36px !important}
.unit span{position:absolute;right:14px;top:50%;transform:translateY(-50%);font-size:13px;color:var(--sub);pointer-events:none}
.grid2{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.chips{display:flex;flex-wrap:wrap;gap:8px}
.chip{padding:8px 15px;border-radius:999px;border:1.5px solid var(--line);background:var(--field);font-size:14px;font-weight:500}
.chip[aria-pressed="true"]{background:var(--accent);border-color:var(--accent);color:var(--accent-ink);font-weight:700;
  box-shadow:0 4px 12px rgba(240,137,106,.3)}
.more{border-top:1.5px dashed var(--line);padding-top:14px}
.more summary{font-size:14px;font-weight:700;cursor:pointer;list-style:none;display:flex;align-items:center;gap:8px}
.more summary::-webkit-details-marker{display:none}
.more summary::before{content:"＋";color:var(--accent);font-weight:900}
.more[open] summary::before{content:"－"}
.more summary span{font-size:12px;color:var(--sub);font-weight:500}
.more[open]{display:flex;flex-direction:column;gap:12px}

/* 応援 */
.support{margin:34px 0 8px;text-align:center;background:linear-gradient(180deg,#fff7df,#fffdf6);border:1.5px solid #f7e6b3;
  border-radius:var(--radius);padding:22px 18px}
.support .seed{font-size:30px;line-height:1}
.support h2{font-size:17px;margin:8px 0 6px}
.support p{font-size:13px;color:var(--sub);margin:0 0 16px;line-height:1.8}
.tips{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}
.tip{padding:14px 6px;border-radius:18px;border:1.5px solid #f3dea0;background:#fff;display:flex;flex-direction:column;gap:3px;
  transition:transform .12s, box-shadow .12s}
.tip:active{transform:scale(.97)}
.tip:hover{box-shadow:0 6px 16px rgba(200,160,60,.18)}
.tip b{font-size:17px;color:var(--ink)}
.tip span{font-size:12px;color:var(--sub)}
.support .note{margin:12px 0 0}

.foot{max-width:560px;margin:34px auto 0;padding:20px 18px 28px;font-size:12px;color:var(--sub);text-align:center}
.foot nav{display:flex;flex-wrap:wrap;justify-content:center;gap:10px 18px;margin-bottom:10px}

/* 下に固定するボタン */
.actionbar{position:fixed;left:0;right:0;bottom:0;z-index:5;display:grid;grid-template-columns:1fr auto;gap:10px;
  padding:12px 16px calc(12px + env(safe-area-inset-bottom));background:rgba(255,250,243,.9);
  backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);box-shadow:0 -6px 24px rgba(120,80,50,.08)}
.actionbar .btn{padding:15px 20px}
@media (min-width:600px){ .actionbar{left:50%;right:auto;width:560px;transform:translateX(-50%);border-radius:24px 24px 0 0} }

/* 下から出るシート */
.sheet{width:min(560px,100%);max-width:100%;max-height:88vh;margin:auto auto 0;border:none;border-radius:28px 28px 0 0;
  padding:26px 20px calc(24px + env(safe-area-inset-bottom));background:var(--panel);color:var(--ink);overflow-y:auto}
.sheet::backdrop{background:rgba(90,60,40,.28);backdrop-filter:blur(2px)}
@media (min-width:600px){ .sheet{margin:auto;border-radius:28px} }
.sheet h2{font-size:19px;margin:0 0 14px}
.sheet h3{font-size:15px;margin:0 0 10px;display:flex;align-items:baseline;gap:8px}
.sheet h3 small{font-size:12px;color:var(--sub);font-weight:500}
.close{position:absolute;right:16px;top:14px;border:none;background:var(--field);width:34px;height:34px;border-radius:50%;font-size:18px;color:var(--sub)}
.sheet .btn.primary{width:100%}
.note{font-size:12px;color:var(--sub);line-height:1.75;margin:10px 0}
.print-block{padding:16px;border:1.5px solid var(--line);border-radius:20px;margin-bottom:12px;background:var(--field)}
.print-block canvas{display:block;width:100%;height:auto;border-radius:8px;box-shadow:var(--shadow-card);margin-bottom:12px;background:#fff}
.slots{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.sheet select{width:100%;padding:12px 14px;border:1.5px solid var(--line);border-radius:14px;background:#fff;color:var(--ink);
  font-size:16px;font-family:inherit;margin-bottom:10px}
.steps{font-size:12px;color:var(--sub);line-height:1.85;padding-left:20px;margin:6px 0}
.thanks-seed{font-size:44px;text-align:center;margin:4px 0 8px}
.ask-text{text-align:center;font-size:14px;line-height:1.9;color:var(--sub);margin:0 0 18px;text-wrap:balance;word-break:auto-phrase}
.ask .later{display:block;margin:14px auto 0;font-size:14px}

.toast{position:fixed;left:50%;bottom:calc(var(--bar) + 18px + env(safe-area-inset-bottom));transform:translate(-50%,16px);opacity:0;pointer-events:none;
  background:var(--ink);color:#fff;font-size:13px;padding:11px 18px;border-radius:999px;transition:all .2s;z-index:20;max-width:90vw;text-align:center;
  box-shadow:0 8px 22px rgba(74,58,48,.25)}
.toast.show{opacity:1;transform:translate(-50%,0)}
