/* あいまる：既存のレイアウトに独立して組み込む共通スタイル */
:root{--am-ink:#112b43;--am-red:#c94a35;--am-paper:#fffaf0;--am-gold:#d8b96a}
.am-sprite{display:block;flex:none;width:var(--am-size,130px);height:var(--am-size,130px);background-image:url('./assets/aimaru/poses.webp');background-size:200% 300%;background-repeat:no-repeat;background-position:0 0;transform-origin:50% 88%}
.am-sprite[data-pose="bow"]{background-position:100% 0}
.am-sprite[data-pose="joy"]{background-position:0 50%}
.am-sprite[data-pose="wink"]{background-position:100% 50%}
.am-sprite[data-pose="again"]{background-position:0 100%}
.am-sprite[data-pose="rest"]{background-position:100% 100%}
.am-surface,.am-surface *{box-sizing:border-box}
.am-surface{color:var(--am-ink);background:var(--am-paper);border:1px solid #e0cda5;border-radius:20px;isolation:isolate}
.am-surface :is(h1,h2,h3,p){color:inherit!important;text-shadow:none!important}
.am-surface h2::before,.am-surface h3::before{display:none!important}
.am-surface h2{margin:8px 0 12px!important;padding:0!important;font-size:clamp(23px,3.2vw,34px)!important;line-height:1.55!important;letter-spacing:.025em!important;border:0!important;background:none!important}
.am-surface p{font-size:14px!important;line-height:1.9!important;margin:8px 0!important}
.am-eyebrow{display:block;font-size:11px;font-weight:800;letter-spacing:.14em;color:#99573f}
.am-welcome{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:14px;padding:26px 30px;margin:24px 0;position:relative;overflow:hidden;background:radial-gradient(circle at 95% 15%,#f3dec1 0,transparent 35%),var(--am-paper)}
.am-welcome::before{content:'和';position:absolute;right:140px;bottom:-30px;font-family:serif;font-size:160px;color:rgba(175,111,60,.06);pointer-events:none;z-index:-1}
.am-welcome .am-sprite{--am-size:190px}
.am-welcome .am-actions{display:flex;flex-wrap:wrap;gap:10px;margin:16px 0 0}
.am-link{display:inline-flex;align-items:center;justify-content:center;gap:12px;min-height:44px;padding:9px 15px;border:1px solid #cbb895;border-radius:999px;color:var(--am-ink)!important;background:transparent;text-decoration:none!important;font-family:inherit;font-weight:700;font-size:13px;line-height:1.7;transition:background .2s}
.am-link:hover{background:#f2e4cd}
.am-link.am-primary{background:var(--am-ink);border-color:var(--am-ink);color:#fffaf0!important}
.am-character{display:flex;flex-direction:column;align-items:center;justify-content:center;min-width:0}
.am-welcome .am-character{width:190px;grid-column:2;grid-row:1/3;text-align:center}
.am-welcome>.am-actions{grid-column:1;grid-row:2;margin-top:0}
.am-visually-hidden{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}
.am-character button,.am-react{display:inline-flex;align-items:center;justify-content:center;background:transparent;border:0;color:inherit;border-radius:50%;padding:0;cursor:pointer;touch-action:manipulation}
.am-react:disabled{cursor:default;opacity:1}
.am-react:focus-visible,.am-surface :is(button,a):focus-visible,.am-peek button:focus-visible,.am-footer :is(button,a):focus-visible{outline:3px solid #d08830;outline-offset:5px}
.am-tap{font-size:11px;letter-spacing:.06em;color:inherit;opacity:.8;margin-top:3px;line-height:1.5}
.am-js-only{display:none!important}
.am-ready .am-js-only{display:initial!important}
.am-message{display:block;min-height:1.8em;font-size:13px;font-weight:700;line-height:1.8;color:inherit;margin-top:6px}
.am-message:empty{display:none}
.am-note{display:flex;align-items:center;gap:14px;padding:12px 18px;border-radius:15px;margin:18px 0;background:#fff7e7;color:var(--am-ink);border:1px solid #decca8;text-align:left}
.am-note .am-sprite{--am-size:90px}
.am-note p{margin:4px 0!important;font-size:14px!important;line-height:1.9!important}
.am-note strong{color:var(--am-ink)!important}
.am-note a{color:#95432e!important;text-underline-offset:4px}
.am-note .am-eyebrow{font-size:10px}
.am-note .am-message{font-size:12px}
.am-footer{max-width:1120px;margin:0 auto 28px;border-bottom:1px solid rgba(216,185,106,.25);padding:0 0 22px;display:flex;align-items:center;gap:16px;color:#e3e9e9}
.am-footer .am-sprite{--am-size:82px}
.am-footer-copy{flex:1;min-width:0;font-size:13px;line-height:1.8}
.am-footer-copy a{color:#f1dcae!important;text-underline-offset:4px}
.am-footer-copy p{font-size:12px!important;line-height:1.8!important;margin:0 0 3px!important;color:#d3dfe5!important}
.am-motion{font:inherit;font-size:11px!important;border:1px solid #647382;border-radius:999px;background:transparent;color:#d3dfe5!important;min-height:44px;padding:8px 12px;cursor:pointer}
.am-ready .am-motion.am-js-only{display:inline-flex!important}
.am-peek{position:relative;display:flex;align-items:end;justify-content:end;gap:12px;min-height:78px;margin:14px 0 0;padding:0 10px;border-bottom:2px solid rgba(211,179,124,.4);color:inherit;isolation:isolate}
.am-peek-window{display:block;width:95px;height:70px;overflow:hidden;flex:none}
.am-peek button{display:block;width:95px;height:70px;padding:0;border:0;border-radius:16px 16px 0 0;background:none;cursor:pointer;color:inherit}
.am-peek .am-sprite{--am-size:95px;transform:translateY(34px) rotate(-9deg);transition:transform .35s}
.am-peek button:is(:hover,:focus-visible) .am-sprite{transform:translateY(22px) rotate(5deg)}
.am-peek.is-found .am-sprite{transform:translateY(4px)}
.am-peek.is-found .am-peek-window,.am-peek.is-found button{height:96px}
.am-peek .am-peek-answer{flex:1;max-width:400px;margin:0 0 9px;font-size:13px;line-height:1.8;text-align:right;color:inherit}
.am-peek.am-left{flex-direction:row-reverse}
.am-peek.am-left .am-peek-answer{text-align:left}
.am-peek button:disabled{cursor:default}
.am-hunt{padding:25px 28px;margin:24px 0}
.am-hunt-head{display:flex;gap:20px;align-items:center;justify-content:space-between}
.am-hunt h2{font-size:24px!important}
.am-stamps{display:flex;gap:9px;flex:none;padding:0;margin:0;list-style:none}
.am-stamps li{display:grid;place-items:center;width:44px;height:44px;border:1px dashed #bba783;border-radius:50%;font-weight:800;color:#857256;background:#f6efdf}
.am-stamps li.is-found{color:white;background:#b65136;border-style:solid;border-color:#b65136}
.am-hunt-status{font-weight:700}
.am-hunt-complete{border-top:1px solid #dfcbaa;margin-top:16px;padding-top:16px}
.am-hunt [hidden],.am-surface [hidden]{display:none!important}
.am-small-button{background:transparent;color:var(--am-ink);border:0;border-bottom:1px solid #9a8667;padding:8px 2px;min-height:44px;cursor:pointer;font:inherit;font-size:12px}
.am-achievement{padding:28px;margin:28px 0;display:grid;grid-template-columns:auto minmax(0,1fr);gap:24px;align-items:center}
.am-achievement .am-sprite{--am-size:145px}
.am-achievement>.am-choices,.am-achievement>.am-message{grid-column:1/-1}
.am-achievement h2{font-size:24px!important}
.am-choices{display:flex;gap:8px;flex-wrap:wrap;margin:16px 0 12px}
.am-choices button{font:inherit;font-weight:700;font-size:13px;line-height:1.6;color:var(--am-ink);background:transparent;border:1px solid #cbb895;border-radius:999px;padding:10px 14px;min-height:44px;cursor:pointer}
.am-choices button[aria-pressed="true"]{color:#fff;background:#a74630;border-color:#a74630}
.am-ready .am-choices.am-js-only{display:flex!important}
.am-parent-wrap{width:min(calc(100% - 36px),1100px);margin:34px auto}
.am-parent-wrap .am-welcome{margin:0}
.am-profile{max-width:1080px;width:calc(100% - 36px);margin:36px auto 80px;font-family:'Noto Sans JP',system-ui,sans-serif;line-height:1.9}
.am-breadcrumb{font-size:12px;margin-bottom:24px;color:#c8d4da}
.am-breadcrumb a{color:#ecd8a9}
.am-profile-hero{position:relative;padding:52px 46px;display:grid;grid-template-columns:minmax(0,1fr) 330px;gap:24px;align-items:center;background:radial-gradient(circle at 80% 20%,#f6dfbf,transparent 48%),var(--am-paper);overflow:hidden}
.am-profile-hero h1{font-family:'Shippori Mincho',serif;font-size:clamp(28px,4.5vw,48px);line-height:1.55;margin:14px 0 20px;letter-spacing:.04em}
.am-profile-hero .am-name{display:block;font-family:'Noto Sans JP',system-ui,sans-serif;font-size:16px;letter-spacing:.2em;color:#a04d37;margin:15px 0}
.am-profile-hero .am-sprite{--am-size:310px}
.am-profile-hero .am-character{text-align:center}
.am-profile-section{margin:44px 0}
.am-profile-section>h2{font-size:26px;color:#f2dfb2;margin:0 0 20px}
.am-values{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}
.am-value{padding:24px;text-align:center}
.am-value .am-sprite{--am-size:125px;margin:auto}
.am-value h3{font-size:18px;margin:12px 0 8px}
.am-bio{padding:30px;display:grid;grid-template-columns:1fr 1fr;gap:0 34px;margin:0}
.am-bio div{padding:16px 0;border-bottom:1px solid #e2d6bd}
.am-bio dt{font-size:12px;font-weight:800;color:#9b4a33}
.am-bio dd{margin:5px 0 0;font-size:14px;line-height:1.9}
.am-pose-picker{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:10px;margin-top:20px}
.am-pose-picker button{display:grid;justify-items:center;gap:5px;border:1px solid #c9b58a;border-radius:14px;background:#fffaf0;color:var(--am-ink);padding:10px 4px;font:inherit;font-size:12px;cursor:pointer;min-height:44px}
.am-pose-picker button[aria-pressed="true"]{outline:3px solid #bc593b;outline-offset:2px}
.am-pose-picker .am-sprite{--am-size:100px}
.am-gallery-current{text-align:center;padding:28px}
.am-gallery-current .am-sprite{--am-size:210px;margin:auto}
.am-gallery-current .am-message{font-size:17px}
.am-goodbye{margin:35px 0 0;text-align:center;padding:32px}
.am-goodbye .am-sprite{margin:0 auto 12px;--am-size:120px}
.am-goodbye .am-actions{justify-content:center;display:flex;flex-wrap:wrap;gap:12px;margin-top:18px}
.am-react.am-performing .am-sprite,.am-enter .am-sprite{animation:am-wiggle 1.1s ease both}
.am-react.am-performing .am-sprite[data-pose="bow"]{animation-name:am-bow}
.am-react.am-performing .am-sprite[data-pose="joy"]{animation-name:am-hop}
.am-react.am-performing .am-sprite[data-pose="rest"]{animation-name:am-breathe;animation-duration:2.2s}
@keyframes am-wiggle{0%,100%{transform:rotate(0)}25%{transform:rotate(-8deg)}65%{transform:rotate(7deg)}}
@keyframes am-bow{0%,100%{transform:rotate(0) scaleY(1)}45%{transform:translateY(7px) rotate(6deg) scaleY(.94)}}
@keyframes am-hop{0%,100%{transform:translateY(0)}28%{transform:translateY(-16px) rotate(-5deg)}65%{transform:translateY(-7px) rotate(4deg)}}
@keyframes am-breathe{0%,100%{transform:scale(1)}50%{transform:scale(1.035)}}
body.am-still .am-sprite{animation:none!important;transition:none!important}
@media (max-width:760px){
 .am-welcome{padding:22px 18px;gap:8px;border-radius:16px}
 .am-welcome h2{font-size:22px!important}
 .am-welcome .am-sprite{--am-size:118px}
 .am-welcome .am-character{width:118px;align-self:start;margin-top:15px;grid-row:1}
 .am-welcome p{font-size:13px!important}
 .am-welcome>.am-actions{grid-column:1/-1;grid-row:2}
 .am-welcome .am-link{font-size:12px;padding:8px 12px}
 .am-note{gap:8px;padding:12px 10px}
 .am-note .am-sprite{--am-size:74px}
 .am-note p{font-size:13px!important}
 .am-footer{flex-wrap:wrap;gap:9px}
 .am-footer .am-sprite{--am-size:68px}
 .am-footer .am-motion{margin-left:77px}
 .am-hunt{padding:20px 17px}
 .am-hunt-head{align-items:start;flex-direction:column;gap:10px}
 .am-achievement{padding:20px 17px;gap:8px;grid-template-columns:88px minmax(0,1fr)}
 .am-achievement .am-sprite{--am-size:88px}
 .am-achievement h2{font-size:21px!important}
 .am-achievement .am-choices,.am-achievement .am-message{grid-column:1/-1}
 .am-profile{margin-top:24px}
 .am-profile-hero{grid-template-columns:1fr;padding:26px 22px;gap:4px}
 .am-profile-hero .am-sprite{--am-size:220px}
 .am-profile-hero .am-character{grid-row:2}
 .am-profile-hero h1{font-size:31px}
 .am-values{grid-template-columns:1fr}
 .am-value{display:grid;grid-template-columns:90px 1fr;align-items:center;column-gap:15px;text-align:left;padding:18px}
 .am-value .am-sprite{--am-size:90px;grid-row:1/3}
 .am-value h3{margin:4px 0}
 .am-value p{margin:4px 0!important}
 .am-bio{padding:14px 22px;grid-template-columns:1fr}
 .am-pose-picker{grid-template-columns:repeat(3,1fr);gap:12px}
 .am-pose-picker .am-sprite{--am-size:76px}
 .am-goodbye{padding:24px 16px}
}
@media (max-width:380px){.am-welcome .am-sprite{--am-size:90px}.am-welcome .am-character{width:90px}.am-welcome{padding:18px 13px}.am-welcome h2{font-size:20px!important}}
@media (prefers-reduced-motion:reduce){.am-sprite{animation:none!important;transition:none!important}}
@media print{.am-js-only,.am-peek,.am-motion{display:none!important}.am-sprite{print-color-adjust:exact;-webkit-print-color-adjust:exact;animation:none!important}}
