/* 見出しの筆文字:Yuji Syuku(SIL OFL 1.1、fonts/OFL.txt)。アプリの文章に出る文字だけに絞ってある(tools/make-font.py) */
@font-face{font-family:"Yuji Syuku";src:url("../fonts/YujiSyuku-sub.woff2") format("woff2");font-display:swap}
/* concept: 断食手帳。方眼紙のページに藍墨で書き、約束は朱の判子で押す。
   layout: 日付の見出し行 → 大きな経過時間 → 24時間の目盛り(区間と現在位置) → 位相の説明 → 押印欄。
   color: 紙 / 藍墨 / 朱(判子だけに使う) */
:root{
  --paper:#FFFFFF; --ink:#1A2440; --ink2:#2F3954; --rule:#C9D0D8; --print:#FFFFFF; --seal:#C8321F;
  --disp:"Yuji Syuku","Hiragino Mincho ProN","Yu Mincho","YuMincho","Noto Serif JP",serif;
  --body:"BIZ UDPGothic","Hiragino Sans","Yu Gothic","Noto Sans JP",sans-serif;
  --mono:"BIZ UDGothic","Hiragino Sans","Yu Gothic",ui-monospace,monospace;
}
/* テーマカラー(手とくらしログと同じ:ミント/さくら/そら)。
   面(--wash/--wash2)・帯(--b0〜b2)・経過バー(--water→--leaf)・文字の差し色(--wtxt)をまとめて変える。
   朱(--seal)は判子なので変えない。見た目の明るい・暗いは端末に合わせて自動 */
:root{--wash:#E1F3EA; --wash2:#C9EADA; --b0:#C9EADA; --b1:#A3DBC0; --b2:#78CCA5; --water:#8BD5B4; --leaf:#2FA77A; --wtxt:#17694E}
:root[data-color="sakura"]{--wash:#FBE5EC; --wash2:#F5CFDD; --b0:#F5CFDD; --b1:#EDB0C6; --b2:#E38BAB; --water:#EEA6BF; --leaf:#CF5682; --wtxt:#A2345A}
:root[data-color="sora"]{--wash:#E2EEFA; --wash2:#CADFF5; --b0:#CADFF5; --b1:#A4CBEF; --b2:#7AB3E6; --water:#98C6EE; --leaf:#2A82CC; --wtxt:#1F5D94}
@media (prefers-color-scheme: dark){
  :root{--paper:#111726; --ink:#ECEEF5; --ink2:#D0D6E4; --rule:#38446A; --print:#1F2740; --seal:#EC6A53; color-scheme:dark;
    --wash:#18302A; --wash2:#21433A; --b0:#21433A; --b1:#2A5A4B; --b2:#33715C; --water:#3E8F72; --leaf:#4FCB9B; --wtxt:#8BE3C0}
  :root[data-color="sakura"]{--wash:#2F1D27; --wash2:#432836; --b0:#432836; --b1:#5A3247; --b2:#743E5C; --water:#A85A78; --leaf:#F08CAE; --wtxt:#F7B6CC}
  :root[data-color="sora"]{--wash:#17263B; --wash2:#213551; --b0:#213551; --b1:#2B4668; --b2:#365A84; --water:#3F78A8; --leaf:#6FB8EE; --wtxt:#A0D0F2}
}
*{box-sizing:border-box}
body{background-color:var(--paper);
  color:var(--ink);font-family:var(--body);font-size:15px;line-height:1.7;
  padding-block:14px calc(96px + env(safe-area-inset-bottom,0px));
  padding-left:max(16px,env(safe-area-inset-left,0px));padding-right:max(16px,env(safe-area-inset-right,0px));
  -webkit-tap-highlight-color:transparent}
.wrap{max-width:480px;margin:0 auto;display:flex;flex-direction:column;gap:26px;min-width:0}
h1,h2{margin:0;line-height:1.4}
h1{font-family:var(--disp);font-weight:400;font-size:30px;letter-spacing:.04em}
h2{font-size:15px;font-weight:700;letter-spacing:.05em}
p{margin:0}
.sub{color:var(--ink2);font-size:13.5px}
.muted{color:var(--ink2);font-size:12.5px}
.lab{display:block;font-family:var(--mono);font-size:12.5px;font-weight:700;letter-spacing:.08em;color:var(--ink2);margin-bottom:2px}
button{font:inherit;color:inherit;cursor:pointer}
button:focus-visible,input:focus-visible,textarea:focus-visible,label.btn:focus-within{outline:2px solid var(--seal);outline-offset:2px}

/* diary header */
.hd{display:flex;align-items:baseline;gap:10px;padding-bottom:2px;flex-wrap:wrap}
.hd .yr{font-family:var(--mono);font-size:12px;color:var(--ink2)}
.hd .dt{font-family:var(--disp);font-size:25px;line-height:1.2;letter-spacing:.03em}
.hd .stk{margin-left:auto;font-family:var(--mono);font-size:13px;color:var(--ink2)}
.hd .stk b{font-size:20px;color:var(--ink)}
.tag{display:inline-block;background:var(--b0);color:var(--wtxt);border-radius:4px;font-size:11px;padding:0 6px;line-height:1.6;font-weight:700;margin-left:8px}
.goal{font-size:15.5px;line-height:1.7;text-align:center}
.goal b{font-family:var(--mono);font-weight:400;font-size:11.5px;color:var(--ink2);letter-spacing:.08em;margin-right:8px}
.meta{font-size:13px;color:var(--ink2);display:flex;align-items:center;justify-content:center;flex-wrap:wrap;gap:6px 10px;min-width:0;text-align:center}
.meta span{min-width:0;line-height:1.45}
.chip{flex:none;border:0;background:var(--wash2);color:var(--ink);font-weight:700;font-size:13px;border-radius:999px;padding:6px 14px;min-height:34px}
.meta b{font-family:var(--mono);color:var(--ink)}
.head{display:flex;flex-direction:column;gap:8px}

/* clock */
.clk{position:relative;padding-top:2px;text-align:center}
.clk .lab{text-align:center;margin-bottom:0}
.big{font-family:var(--mono);font-weight:700;font-size:clamp(40px,12.4vw,54px);line-height:1.2;letter-spacing:.01em;font-variant-numeric:tabular-nums;white-space:nowrap;text-align:center}
.big.idle{color:var(--ink2)}
.trio{display:grid;grid-template-columns:1fr 1.3fr 1fr;margin:12px 0 0;background:var(--wash);border-radius:8px;text-align:center}
.trio div{padding:8px 6px;min-width:0}
.trio dt{font-family:var(--mono);font-size:12px;font-weight:700;color:var(--ink2);letter-spacing:.06em}
.trio dd{margin:0;font-family:var(--mono);font-weight:700;font-size:13.5px;line-height:1.5}

/* 24h strip */
svg.strip{display:block;width:100%;height:auto;overflow:visible}
.bd{stroke:none}
.bd0{fill:var(--b0)}.bd1{fill:var(--b1)}.bd2{fill:var(--b2)}
.bdh{display:none}
.bd.on{stroke:none}
.hl{stroke:var(--ink2);stroke-width:1;opacity:.7}
.bl{font-size:11px;font-weight:700;fill:var(--ink);font-family:var(--body);text-anchor:middle}
.ptrk{fill:var(--wash);stroke:none}
.pfill{fill:url(#pg);transition:width 1s linear}
.gs0{stop-color:var(--water)}.gs1{stop-color:var(--leaf)}
.tk{stroke:var(--ink2);stroke-width:1}
.tkl{font:700 11px var(--mono);fill:var(--ink2);text-anchor:middle}
.tg{stroke:var(--seal);stroke-width:1.5;stroke-dasharray:4 3}
.tgt{font:700 10.5px var(--mono);fill:var(--seal);text-anchor:middle}
.mk line{stroke:var(--ink);stroke-width:2}
.mk circle{fill:var(--paper);stroke:var(--ink);stroke-width:2.5}

/* phase text */
.phase{display:flex;flex-direction:column;gap:6px}
.ph-h{font-weight:700;font-size:16px;line-height:1.5}
.ph-h i{font-style:normal;font-family:var(--mono);font-size:12px;color:var(--ink2);margin-right:8px;letter-spacing:.06em}
.ph-h i{display:inline-block;background:var(--wash2);color:var(--wtxt);font-weight:700;border-radius:999px;padding:2px 12px;vertical-align:2px}
.ph-body{font-size:14px}
.ph-note{font-size:13px;color:var(--ink2)}
.foot{font-size:12.5px;color:var(--ink2);line-height:1.6}

/* buttons */
.two{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:48px;padding:10px 14px;border-radius:8px;border:0;background:var(--wash);color:var(--ink);font-weight:700;font-size:14px;text-align:center;line-height:1.35}
.btn.primary{background:var(--ink);color:var(--paper)}
.btn.ghost{background:var(--wash)}
.btn.quiet{background:var(--wash)}
.btn.warm,.btn.seal{color:var(--seal);background:var(--wash)}
.btn.big{width:100%;min-height:54px;font-size:15px}
.btn.sm{min-height:38px;padding:6px 12px;font-size:13px}
.btn[disabled]{opacity:.45;cursor:not-allowed}
.lk{background:none;border:0;padding:6px 2px;min-height:40px;color:var(--wtxt);font-size:13.5px;font-weight:700}
.lks{display:flex;flex-wrap:wrap;gap:4px 18px;justify-content:center}
.startnote{font-size:12px;color:var(--ink2);text-align:center;font-family:var(--mono)}
#cta{display:flex;flex-direction:column;gap:10px}

/* pledge + seal */
.pledge{display:grid;grid-template-columns:1fr 96px;gap:14px;align-items:center;border-radius:10px;padding:14px 12px 14px 16px;background:var(--wash)}
.pl-t{font-size:15px;line-height:1.85}
.pl-t b{font-family:var(--mono);font-size:17px}
.pl-d{margin-top:8px;font-family:var(--mono);font-size:12px;color:var(--ink2)}
.seal-btn{position:relative;width:96px;height:96px;padding:0;border:0;background:none;border-radius:50%;user-select:none;-webkit-user-select:none;-webkit-touch-callout:none;touch-action:manipulation}
.seal-btn .seal{width:100%;height:100%;display:block;overflow:visible}
.sr{fill:none;stroke:var(--seal);stroke-width:3;stroke-dasharray:5 4}
.s-in{display:none}
.sf{fill:var(--seal);opacity:calc(var(--hold,0)*.16)}
.seal text{font-family:var(--disp);font-size:28px;fill:var(--seal);text-anchor:middle;opacity:.8}
.hr{fill:none;stroke:var(--seal);stroke-width:5;stroke-linecap:round;stroke-dasharray:1;stroke-dashoffset:calc(1 - var(--hold,0));opacity:calc(var(--hold,0)*40);transform:rotate(-90deg);transform-origin:48px 48px}
.stamped .seal{animation:stamp .32s cubic-bezier(.2,.9,.3,1.15) both}
.stamped .sf{opacity:1}.stamped .sr{stroke-dasharray:none}.stamped .s-in{stroke:var(--paper);opacity:.8}.stamped .seal text{fill:var(--paper);opacity:1}.stamped .hr{opacity:0}
@keyframes stamp{0%{transform:scale(1.4) rotate(-3deg);opacity:.3}100%{transform:scale(1) rotate(-8deg);opacity:1}}

/* sections (flat, ruled) */
.card{display:flex;flex-direction:column;gap:12px;min-width:0}
.card.warn{background:var(--wash);border-radius:10px;padding:14px}
.card.warn h2{color:var(--seal)}
.card.warn .note-box{color:var(--ink)}
.empty{color:var(--ink2);font-size:14px}
.stats{display:grid;grid-template-columns:repeat(3,1fr)}
.stats>div{padding:10px 4px;text-align:center}
.stats b{display:block;font-family:var(--mono);font-size:30px;line-height:1.25;font-weight:700}
.stats span{font-size:12px;color:var(--ink2)}
svg.chart{display:block;width:100%;height:auto}
.gl{stroke:none}
.tx{fill:var(--ink2);font-size:10px;font-family:var(--mono)}
.tx.now{fill:var(--ink);font-weight:700}
.bar{fill:var(--wash2);stroke:none}
.bar.ok{fill:var(--leaf)}
.tgl{stroke:var(--seal);stroke-width:1.3;stroke-dasharray:4 3}
.tgl-t{fill:var(--seal);font-size:10px;font-weight:700;font-family:var(--mono)}
.ln{fill:none;stroke:var(--leaf);stroke-width:2;stroke-linejoin:round;stroke-linecap:round}
.dot{fill:var(--paper);stroke:var(--leaf);stroke-width:2}
.dot.end{fill:var(--leaf);stroke:var(--leaf)}
.legend{font-size:12px;color:var(--ink2);line-height:1.6}
.delta{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;text-align:center}
.delta div{background:var(--wash);border-radius:8px;padding:8px 4px;font-size:12px;color:var(--ink2)}
.delta b{display:block;font-family:var(--mono);font-size:17px;color:var(--ink)}

/* stamp calendar */
.cal{display:grid;grid-template-columns:repeat(7,1fr);gap:4px}
.cw{font-family:var(--mono);font-size:11px;color:var(--ink2);text-align:center;padding:2px 0}
.cd{position:relative;aspect-ratio:1;background:var(--wash);border-radius:6px;min-width:0}
.cd.now{background:var(--b0)}
.cd.now .dn{color:var(--ink);font-weight:700}
.cd.fut{background:transparent}
.dn{position:absolute;left:3px;top:1px;font:10px var(--mono);color:var(--ink2)}
.cs{position:absolute;inset:14% 12% 8% 12%;width:76%;height:78%}
.cs .a{fill:none;stroke:var(--seal);stroke-width:5}
.cs text{font-family:var(--disp);text-anchor:middle;fill:var(--seal)}
.cs.solid .a{fill:var(--seal)}
.cs.solid text{fill:var(--paper)}
.cs.rest .a{stroke:var(--ink2)}
.cs.rest text{fill:var(--ink2)}
.cs.ring .a{stroke-dasharray:none;opacity:.85}
.lg{display:flex;flex-wrap:wrap;gap:6px 16px;font-size:12px;color:var(--ink2)}
.lg b{font-family:var(--disp);font-weight:400;color:var(--seal);font-size:15px;margin-right:4px}

/* segmented choice */
.seg{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}
.seg.c2{grid-template-columns:1fr 1fr}
.seg button{min-height:50px;border-radius:8px;border:0;background:var(--wash);font-weight:700;display:flex;flex-direction:column;align-items:center;justify-content:center;line-height:1.3}
.seg button small{font-size:11px;font-weight:400;color:var(--ink2)}
.seg button.on{background:var(--ink);color:var(--paper)}
.seg button.on small{color:var(--paper);opacity:.8}
.seg button[disabled]{opacity:.4;cursor:not-allowed}

/* photo log */
.sl{display:grid;grid-template-columns:1fr auto;align-items:center;gap:2px 10px}
.sl label{font-weight:700;font-size:14px}
.sl output{font-family:var(--mono);font-weight:700;font-size:20px}
.sl input{grid-column:1/-1;width:100%;accent-color:var(--ink);height:32px}
.scale{display:flex;justify-content:space-between;font-size:11.5px;color:var(--ink2);margin-top:-6px}
textarea,input[type=text],input[type=datetime-local]{width:100%;font:inherit;color:var(--ink);background:var(--wash);border:0;border-radius:8px;padding:10px 12px;min-height:46px}
textarea{resize:vertical;min-height:70px}
.pv{width:100%;max-height:340px;object-fit:cover;border-radius:2px;aspect-ratio:3/4;background:var(--wash)}
.tl-img{position:relative;overflow:hidden;background:var(--wash);aspect-ratio:3/4;max-height:380px;margin-inline:auto;width:100%}
.tl-img img{width:100%;height:100%;object-fit:cover;display:block}
.tl-date{position:absolute;left:8px;bottom:8px;padding:1px 8px;background:rgba(18,24,40,.78);color:#F1F2EE;font:12.5px var(--mono)}
.tl-ctl{display:flex;align-items:center;gap:12px}
.tl-ctl input{flex:1;accent-color:var(--ink);min-width:0}
.grid3{display:grid;grid-template-columns:repeat(3,1fr);gap:10px 8px}
.thumb{border:0;padding:0;background:none;display:flex;flex-direction:column;min-width:0}
.ph-in{display:block;aspect-ratio:3/4;overflow:hidden;background:var(--wash);border-radius:6px}
.ph-in img{width:100%;height:100%;object-fit:cover;display:block}
.thumb .d{font:11px var(--mono);padding:4px 0;color:var(--ink2);text-align:center}
.phe{width:100%;height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;color:var(--ink2);font-size:11px}
.phe b{font-family:var(--mono);font-size:24px;color:var(--ink);line-height:1}
.ref{display:flex;gap:12px;align-items:center}
.ref img{width:64px;height:86px;object-fit:cover;flex:none}
.cmp{margin:0;min-width:0}
.cmp img{width:100%;aspect-ratio:3/4;object-fit:cover;display:block;background:var(--wash)}
.cmp figcaption{font-size:12px;color:var(--ink2);margin-top:6px;line-height:1.5}
.cmp b{color:var(--ink)}
.mini{display:grid;grid-template-columns:auto 1fr auto;gap:4px 10px;align-items:center;font-size:13.5px}
.meter{height:8px;background:var(--wash2);overflow:hidden}
.meter i{display:block;height:100%;background:var(--ink)}

/* sheet */
.sheet-wrap{position:fixed;inset:0;z-index:50}
.scrim{position:absolute;inset:0;background:rgba(8,12,24,.55);opacity:0;transition:opacity .25s}
.sheet{position:absolute;left:50%;bottom:0;width:100%;max-width:520px;max-height:90%;overflow-y:auto;background:var(--paper);color:var(--ink);
  border-radius:18px 18px 0 0;padding:8px max(18px,env(safe-area-inset-left,0px)) calc(22px + env(safe-area-inset-bottom,0px));
  display:flex;flex-direction:column;gap:14px;transform:translate(-50%,100%);transition:transform .28s cubic-bezier(.2,.8,.2,1)}
.sheet h2{font-family:var(--disp);font-weight:400;font-size:22px;letter-spacing:.03em}
.sheet-wrap.in .scrim{opacity:1}
.sheet-wrap.in .sheet{transform:translate(-50%,0)}
.grab{width:40px;height:4px;border-radius:2px;background:var(--rule);margin:4px auto 4px;flex:none}
.blk{display:flex;flex-direction:column;gap:8px;padding:14px;border-radius:10px;background:var(--wash)}
.wrapr{display:flex;flex-wrap:wrap;gap:8px}
.bigtime{font-family:var(--mono);font-weight:700;font-size:21px}
.goal.big{font-family:var(--body);font-weight:700;font-size:19px;line-height:1.6}
.ideas{display:flex;flex-direction:column;gap:6px}
.idea{text-align:left;min-height:44px;padding:8px 12px;border-radius:8px;border:0;background:var(--paper);font-size:14px}
.idea.on{background:var(--b0);font-weight:700}
.breath{position:relative;height:150px;display:flex;align-items:center;justify-content:center}
.orb{position:absolute;width:128px;height:128px;border-radius:50%;background:var(--seal);opacity:.2;transform:scale(.55);transition:transform 4s ease-in-out}
.breath .bl{position:relative;font-family:var(--disp);font-size:24px;fill:none;text-anchor:initial}
.count{font-family:var(--mono);font-weight:700;font-size:34px;text-align:center}
.nl{margin:0;padding-left:1.3em;display:flex;flex-direction:column;gap:2px}
.note-box{font-size:12.5px;color:var(--ink2);line-height:1.75}

/* nav + toast */
.nav{position:fixed;left:0;right:0;bottom:0;z-index:20;background:var(--wash);
  padding:0 max(8px,env(safe-area-inset-right,0px)) env(safe-area-inset-bottom,0px) max(8px,env(safe-area-inset-left,0px))}
.nav-in{max-width:520px;margin:0 auto;display:grid;grid-template-columns:repeat(4,1fr)}
.nav button{position:relative;background:none;border:0;display:flex;flex-direction:column;align-items:center;gap:0;padding:6px 2px 7px;color:var(--ink2);min-height:56px;justify-content:center}
.nav-ico{width:24px;height:24px;display:block;margin-bottom:2px}
.nav-ico .knob{fill:var(--wash)}
.nav button.on .nav-ico .knob{fill:var(--b0)}
.nav .lb{font-size:10.5px;letter-spacing:.02em}
.nav button.on{color:var(--ink);font-weight:700;background:var(--b0)}
.toast{position:fixed;left:50%;bottom:calc(76px + env(safe-area-inset-bottom,0px));transform:translate(-50%,12px);width:max-content;max-width:min(440px,calc(100% - 32px));white-space:pre-line;line-height:1.6;
  background:var(--ink);color:var(--paper);padding:10px 16px;border-radius:3px;font-size:14px;opacity:0;pointer-events:none;transition:opacity .25s,transform .25s;z-index:60;text-align:center}
.toast.on{opacity:1;transform:translate(-50%,0)}
@media (prefers-reduced-motion: reduce){
  *{transition:none!important;animation:none!important}
}

/* brand (アプリ名) */
.brand{font-family:var(--disp);font-weight:400;font-size:25px;line-height:1.4;letter-spacing:.05em;color:var(--ink);margin:0 0 -10px;text-align:center}
.brand em{font-style:normal;color:var(--seal)}
/* seal picker */
.seals{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}
.sealpick{border:0;background:var(--wash);border-radius:10px;padding:10px 4px 8px;display:flex;flex-direction:column;align-items:center;gap:6px;min-width:0}
.sealpick small{font-size:10.5px;line-height:1.35;color:var(--ink2)}
.sealpick.on{background:var(--b0)}
.sealpick.on small{color:var(--ink);font-weight:700}
.sealpick[disabled]{opacity:.45;cursor:not-allowed}
.mini-seal{width:52px;height:52px}
.mini-seal .sf{opacity:1}.mini-seal .sr{stroke-dasharray:none}.mini-seal .s-in{display:none}.mini-seal text{fill:var(--paper);opacity:1}.mini-seal .hr{display:none}

/* button icons */
.bi{width:20px;height:20px;flex:none}
.lk{display:inline-flex;align-items:center;gap:6px}
.lk .bi{width:18px;height:18px}
.btn.seal .bi{color:var(--seal)}
/* goal */
.goal-btn{display:block;width:100%;text-align:center;background:none;border:0;padding:0;color:inherit;font:inherit;font-size:15.5px;line-height:1.7}
.goal-btn .bi{width:16px;height:16px;vertical-align:-2px;margin-left:6px;color:var(--ink2)}
.goals{display:flex;flex-direction:column;gap:6px}
.gopt{text-align:left;min-height:46px;padding:10px 14px;border-radius:8px;border:0;background:var(--wash);font-size:14.5px}
.gopt.on{background:var(--b0);font-weight:700}
.sheet input[type=text]{background:var(--paper)}
/* theme color swatch */
.sw{display:block;width:18px;height:18px;border-radius:50%;margin-bottom:3px}
/* 5 faces */
.rate{display:flex;flex-direction:column;gap:4px}
.rate-l{font-weight:700;font-size:14px}
.scale{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:2px;margin:0}
.scale button{border:0;background:none;display:flex;flex-direction:column;align-items:center;gap:3px;padding:2px 0;min-width:0}
.scale button span{font-size:10.5px;line-height:1.3;color:var(--ink2);text-align:center;min-height:2.6em}
.scale button.on span{color:var(--ink);font-weight:700}
.face{width:46px;height:46px;display:block}
.face .ring{fill:none;stroke:var(--ink2);stroke-width:3}
.on .face .ring,.face .ring.on{fill:var(--leaf);stroke:var(--leaf)}
.face .eye{fill:var(--ink)}
.face .ink{fill:none;stroke:var(--ink);stroke-width:4.5;stroke-linecap:round;stroke-linejoin:round}
.on .face .eye,.face .ring.on~.eye{fill:#14202E}
.on .face .ink,.face .ring.on~.ink{stroke:#14202E}
.fsum{display:flex;flex-wrap:wrap;gap:4px 12px;font-size:12px;color:var(--ink2)}
.fsum span{display:inline-flex;align-items:center;gap:4px}
.fsum .face{width:24px;height:24px}
.mini{grid-template-columns:auto auto 1fr}
.mini .face{width:30px;height:30px}

/* 3つの操作 */
.acts{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
.act{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;min-height:72px;padding:10px 4px;border:0;border-radius:10px;background:var(--wash);color:var(--ink);font-weight:700;font-size:13px;line-height:1.3}
.act .bi{width:24px;height:24px}
.act.warm .bi{color:var(--seal)}
.act.go{background:var(--ink);color:var(--paper)}

.acts.c4{grid-template-columns:repeat(4,minmax(0,1fr))}
.acts.c4 .act{font-size:12px;cursor:pointer}

/* SNSに投稿 */
.seg.c2{grid-template-columns:1fr 1fr}
.shbox{background:var(--wash);border-radius:10px;padding:10px;display:flex;justify-content:center}
.shimg{display:block;width:100%;max-width:300px;aspect-ratio:1/1;object-fit:contain;border-radius:6px;background:var(--paper)}
.shbox.tall .shimg{max-width:190px;aspect-ratio:9/16}
.done-top{display:flex;flex-direction:column;align-items:center;text-align:center;gap:8px;padding-top:6px}
.done-seal{width:120px;height:120px;transform:rotate(-8deg)}
.done-seal .sf{opacity:1}.done-seal .sr{stroke-dasharray:none}.done-seal .s-in{stroke:var(--paper);fill:none;stroke-width:3;display:block;opacity:.85}.done-seal text{fill:var(--paper);opacity:1}.done-seal .hr{display:none}
.sheet .done-top h2{font-size:24px;line-height:1.45}
.newseal{background:var(--wash);border-radius:8px;padding:8px 12px;font-size:13.5px;font-weight:700;color:var(--wtxt)}
/* 撮影ガイド */
.gbox{position:relative;width:100%;max-width:340px;margin:0 auto;aspect-ratio:3/4;border-radius:10px;overflow:hidden;background:#000}
.gbox video,.gbox img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transform:scaleX(-1)}
.gbox img{opacity:.35;pointer-events:none}
#shtxt{min-height:100px}
