/* リンボ (Limbo Japan site) — on top of limbo.css (limboart.com's stylesheet, copied as is).
   Only what Japanese text and the legal pages need. */

body{font-family:"Pretendard JP Variable","Pretendard Variable",Pretendard,-apple-system,BlinkMacSystemFont,"Hiragino Sans","Hiragino Kaku Gothic ProN","Noto Sans JP",system-ui,sans-serif}
/* keep-all stops Japanese from wrapping at all; use Japanese line-breaking rules instead */
:lang(ja) body{word-break:normal;line-break:strict;overflow-wrap:anywhere}
.logs h2{white-space:normal;max-width:18ch;font-size:clamp(24px,3.4vw,46px)}
.figs > div > span{letter-spacing:.12em}
.figures dd{letter-spacing:.12em}

/* offline: feature cards instead of the live review stream */
.logs .card .m{letter-spacing:.04em}
.marquee .track{animation-duration:var(--dur)}

/* EXPO: quote under the panel */
.quote{margin:0;max-width:40em;font-size:15px;line-height:1.8;color:#3A3A3A;text-wrap:pretty}
.quote p{margin:0}
.expo .under{max-width:44em;line-height:1.7}

/* closing screen: payments note + links, in the Notices board style */
.team small{font-size:15px;letter-spacing:.06em}
.board .note{margin:0;padding:22px 2px;border-top:1px solid var(--line);font-size:14px;line-height:1.8;color:#3A3A3A;text-align:left}
.board .links{margin:0;padding:0;list-style:none;border-top:1px solid var(--line);border-bottom:1px solid var(--line);display:flex;flex-wrap:wrap;justify-content:center;gap:6px 22px;padding:16px 0;font-size:13px;font-weight:600}
.board .links a:hover{color:var(--mut)}
.end footer .fl{display:flex;flex-wrap:wrap;justify-content:center;gap:4px 16px}

/* legal and info pages: limboart.com's /spaces page layout, text left-aligned */
.page.doc{padding-bottom:40px}
.prose{width:100%;max-width:720px;text-align:left;font-size:15px;line-height:1.85;font-weight:500}
.prose h1{margin:0 0 clamp(28px,5vh,48px);text-align:center;font-size:clamp(26px,4.4vw,46px);font-weight:700;letter-spacing:-.04em;line-height:1.2;max-width:none}
.prose h2{margin:44px 0 12px;font-size:19px;letter-spacing:-.02em;line-height:1.4;max-width:none}
.prose h3{margin:22px 0 6px;font-size:16px}
.prose p,.prose ul,.prose ol{margin:0 0 14px}
.prose li{margin-bottom:4px}
.prose a{text-decoration:underline;text-decoration-color:var(--line);text-underline-offset:3px}
.prose a:hover{text-decoration-color:currentColor}
.prose table{width:100%;border-collapse:collapse;margin:8px 0 22px;font-size:14px}
.prose th,.prose td{text-align:left;vertical-align:top;padding:13px 8px;border-bottom:1px solid var(--line)}
.prose thead th{font-size:12px;font-weight:600;letter-spacing:.04em;color:var(--mut)}
.prose td:first-child{width:34%;font-weight:700}
.prose .mail{font-size:22px;font-weight:700}
@media(max-width:560px){
  .prose table,.prose tbody,.prose tr,.prose td{display:block;width:100%}
  .prose thead{display:none}
  .prose tr{border-bottom:1px solid var(--line);padding:10px 0}
  .prose td{border:0;padding:2px 0}
  .prose td:first-child{width:100%;font-size:12px;color:var(--mut)}
}
.site-foot{padding:48px var(--pad) 64px;display:flex;justify-content:center}
.site-foot footer{display:flex;flex-direction:column;gap:9px;font-size:13px;font-weight:500;text-align:center;color:var(--mut)}
.site-foot footer a:hover,.end footer a:hover{color:var(--ink)}
.site-foot .fl{display:flex;flex-wrap:wrap;justify-content:center;gap:4px 16px}

/* Preview only: every 要確認 is numbered and highlighted. The release build contains none. */
mark.tbd{background:#FFF3B0;color:inherit;outline:1.5px dashed #D9913F;outline-offset:1px;border-radius:4px;padding:0 3px}
mark.tbd sup{font-size:10px;font-weight:700;margin-right:3px;color:#D9913F}
.preview-banner{position:fixed;left:0;right:0;bottom:0;z-index:50;background:#FFC526;color:#151514;font-size:13px;font-weight:600;text-align:center;padding:6px var(--pad)}
.preview-banner mark.tbd{outline:none}

/* EXPO screen also carries the quote, so its panel is shorter than GEISAI's */
.expo{gap:clamp(18px,2.6vw,34px)}
.expo .panel.dark{max-height:calc(100svh - 400px);min-height:220px}

/* Limbot, round G (Hal: Keep). Still at rest; a touch or hover plays one beat:
   a blink, the line flows once, a tiny squash. Keyframes from the round G render. */
.limbot{overflow:visible;cursor:pointer;-webkit-tap-highlight-color:transparent}
.limbot .body{transform-box:view-box;transform-origin:12px 12px}
.limbot .bd{opacity:0}
.limbot.touched .body{animation:lg-tap 3s 1}
.limbot.touched .eye{animation:lg-blink 3s 1}
.limbot.touched .bd0{animation:lg-flow0 3s cubic-bezier(.45,0,.55,1) 1}
.limbot.touched .bd1{animation:lg-flow1 3s cubic-bezier(.45,0,.55,1) 1}
.limbot.touched .bd2{animation:lg-flow2 3s cubic-bezier(.45,0,.55,1) 1}
.limbot.touched .bd3{animation:lg-flow3 3s cubic-bezier(.45,0,.55,1) 1}
@keyframes lg-tap{0%,4%{transform:scale(1)}8%{transform:scale(1.05,.95)}14%{transform:scale(.98,1.02)}20%,100%{transform:scale(1)}}
@keyframes lg-blink{0%,5%,13%,100%{transform:scaleY(1)}9%{transform:scaleY(.15)}}
@keyframes lg-flow0{0%,6%{stroke-dashoffset:-36.5;opacity:0}12%{stroke-dashoffset:-41.5;opacity:.9}30%{stroke-dashoffset:-61.5;opacity:.9}40%,100%{stroke-dashoffset:-67.5;opacity:0}}
@keyframes lg-flow1{0%,6%{stroke-dashoffset:-38.5;opacity:0}12%{stroke-dashoffset:-43.5;opacity:.9}30%{stroke-dashoffset:-63.5;opacity:.9}40%,100%{stroke-dashoffset:-69.5;opacity:0}}
@keyframes lg-flow2{0%,6%{stroke-dashoffset:-40.5;opacity:0}12%{stroke-dashoffset:-45.5;opacity:.9}30%{stroke-dashoffset:-65.5;opacity:.9}40%,100%{stroke-dashoffset:-71.5;opacity:0}}
@keyframes lg-flow3{0%,6%{stroke-dashoffset:-42.5;opacity:0}12%{stroke-dashoffset:-47.5;opacity:.9}30%{stroke-dashoffset:-67.5;opacity:.9}40%,100%{stroke-dashoffset:-73.5;opacity:0}}
@media (prefers-reduced-motion: reduce){.limbot *{animation:none!important}.limbot .bd{opacity:0!important}}
