/* ══ Perxona brand system ══════════════════════════════════════
   取自 perxona-showcase/index.html，保持一致。 */
:root{
  --blue:#1F5CFF; --blue-hi:#0B41D8;
  --ink:#1E2129;  --ink-2:#2A2E38;
  --lime:#C6F24E; --page:#DFDEEA;
  --white:#fff;   --grey:#6B7180;
  --line:#C9C7D8;
  --ok:#15A66A;   --warn:#E8600F;
  --r:28px; --r-sm:18px; --r-xs:12px;
  --pad:clamp(14px,3.4vw,40px);
  --sans:"Plus Jakarta Sans","Zen Kaku Gothic New","Noto Sans TC",system-ui,-apple-system,"Hiragino Kaku Gothic ProN","Microsoft JhengHei",sans-serif;
  --swoosh:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 200 12' preserveAspectRatio='none'%3E%3Cpath d='M3 8.5C42 2.5 118 1.5 197 5.5' stroke='%23C6F24E' stroke-width='5.5' fill='none' stroke-linecap='round'/%3E%3C/svg%3E");
  --shadow:0 2px 8px rgba(30,33,41,.06),0 14px 34px rgba(30,33,41,.09);
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  margin:0;background:var(--page);color:var(--ink);
  font-family:var(--sans);font-size:16px;line-height:1.55;
  -webkit-font-smoothing:antialiased;
  padding:0 var(--pad) calc(var(--pad) + 84px);
}
a{color:inherit}
:focus-visible{outline:3px solid var(--ink);outline-offset:3px;border-radius:6px}
[hidden]{display:none!important}

/* 語言切換：沿用 showcase 的 [data-l] 機制。東京場預設日文。 */
[data-l]{display:none}
html[lang="ja"]      [data-l="ja"],
html[lang="en"]      [data-l="en"],
html[lang="zh-Hant"] [data-l="zh"]{display:revert}

.sw{position:relative;font-style:italic;white-space:nowrap}
.sw:after{content:"";position:absolute;left:-.04em;right:-.06em;bottom:-.14em;height:.16em;
  background:var(--swoosh) center/100% 100% no-repeat}

/* ── header ── */
header{
  position:sticky;top:0;z-index:60;
  display:flex;align-items:center;gap:12px;
  padding:14px 22px;margin:0 calc(var(--pad)*-1);
  padding-inline:calc(var(--pad) + 8px);
  background:var(--page);
}
.brand{font-weight:800;font-size:17px;letter-spacing:-.03em;text-decoration:none;white-space:nowrap}
.brand span{color:var(--blue)}
.spacer{flex:1}
.langs{display:flex;gap:4px;background:var(--white);padding:4px;border-radius:999px}
.langs button{font:inherit;font-size:12.5px;font-weight:700;padding:6px 12px;white-space:nowrap;
  background:none;border:0;border-radius:999px;color:var(--grey);cursor:pointer}
.langs button[aria-pressed="true"]{background:var(--blue);color:var(--white)}

.status-pill{
  display:inline-flex;align-items:center;gap:7px;
  font-size:12.5px;font-weight:700;padding:8px 15px;border-radius:999px;
  background:var(--white);color:var(--grey);white-space:nowrap;
}
.status-pill i{width:8px;height:8px;border-radius:50%;background:currentColor;flex:none}
.status-pill.is-open{background:var(--lime);color:#38510A}
.status-pill.is-open i{background:var(--ok);animation:blip 1.8s ease-in-out infinite}
.status-pill.is-closed{background:var(--ink);color:var(--white)}
@keyframes blip{0%,100%{opacity:1}50%{opacity:.25}}
@media(prefers-reduced-motion:reduce){.status-pill.is-open i{animation:none}}

.acct{display:flex;align-items:center;gap:8px;background:var(--white);
  padding:5px 6px 5px 5px;border-radius:999px}
.acct img{width:28px;height:28px;border-radius:50%;display:block;background:var(--line)}
.acct b{font-size:12.5px;font-weight:700;max-width:150px;overflow:hidden;
  text-overflow:ellipsis;white-space:nowrap}
.acct button{font:inherit;font-size:12px;font-weight:700;color:var(--grey);
  background:none;border:0;cursor:pointer;padding:6px 10px;border-radius:999px}
.acct button:hover{background:var(--page);color:var(--ink)}

/* ── buttons ── */
.btn{
  font:inherit;font-size:14px;font-weight:700;letter-spacing:-.01em;
  padding:13px 24px;border-radius:999px;border:0;cursor:pointer;
  display:inline-flex;align-items:center;justify-content:center;gap:9px;
  text-decoration:none;transition:background .15s,color .15s,transform .1s;
}
.btn:active{transform:translateY(1px)}
.btn-primary{background:var(--ink);color:var(--white)}
.btn-primary:hover{background:var(--blue)}
.btn-primary:disabled{background:var(--line);color:#8D8AA3;cursor:not-allowed}
.btn-lime{background:var(--lime);color:var(--ink)}
.btn-lime:hover{background:#B6E434}
.btn-ghost{background:var(--white);color:var(--ink)}
.btn-ghost:hover{background:var(--ink);color:var(--white)}
.btn-line{background:none;color:var(--ink);border:1.5px solid var(--line)}
.btn-line:hover{border-color:var(--ink)}

/* ── cards / layout ── */
.card{background:var(--white);border-radius:var(--r);padding:clamp(20px,3vw,32px)}
.card-ink{background:var(--ink);color:var(--white)}
.card-blue{background:var(--blue);color:var(--white)}

h1{font-weight:800;font-size:clamp(32px,4.9vw,60px);line-height:1.03;
  letter-spacing:-.045em;margin:0 0 18px}
html[lang="ja"] h1,html[lang="zh-Hant"] h1{letter-spacing:-.02em;line-height:1.18;
  font-size:clamp(28px,4vw,48px);font-weight:900}
h2{font-weight:800;font-size:clamp(20px,2.4vw,28px);letter-spacing:-.035em;margin:0 0 14px}
.muted{color:var(--grey)}
.tiny{font-size:12.5px;font-weight:600}

.chip{
  font:inherit;font-size:13px;font-weight:600;
  padding:7px 15px;background:none;color:var(--ink);
  border:1.5px solid var(--line);border-radius:999px;cursor:pointer;white-space:nowrap;
}
.chip:hover{border-color:var(--ink)}
.chip[aria-pressed="true"]{background:var(--ink);color:var(--white);border-color:var(--ink)}

/* ── toast ── */
#toast{
  position:fixed;left:50%;bottom:104px;transform:translate(-50%,14px);
  z-index:200;background:var(--ink);color:var(--white);
  padding:14px 22px;border-radius:999px;font-size:14px;font-weight:700;
  box-shadow:var(--shadow);opacity:0;pointer-events:none;transition:opacity .2s,transform .2s;
  max-width:calc(100vw - 32px);text-align:center;
}
#toast.show{opacity:1;transform:translate(-50%,0)}
#toast.err{background:#B3261E}

/* ── modal ── */
.modal{
  position:fixed;inset:0;z-index:300;display:grid;place-items:center;
  padding:20px;background:rgba(30,33,41,.55);backdrop-filter:blur(3px);
}
.modal-box{background:var(--white);border-radius:var(--r);padding:clamp(24px,4vw,40px);
  width:min(520px,100%);max-height:88vh;overflow:auto;box-shadow:var(--shadow)}

@media(max-width:640px){
  header{gap:8px;padding-inline:var(--pad)}
  .brand{font-size:15px}
  .status-pill{padding:7px 12px;font-size:11.5px}
  .acct b{display:none}
}
