/* あいまるの部屋の専用配色。サイト共通の暗色テーマを読み込まない。 */
html{scroll-behavior:smooth;scroll-padding-top:20px}
body.ar-page{margin:0;color:#293c49;color-scheme:light;font-family:'Noto Sans JP','Hiragino Kaku Gothic ProN','Yu Gothic',sans-serif;background-color:#fbf3e5;background-image:linear-gradient(rgba(255,248,235,.92),rgba(255,248,235,.92)),url('./site-asanoha-bg-dark.png');background-size:auto,288px auto;background-repeat:repeat,repeat;line-height:1.9;-webkit-font-smoothing:antialiased}
.ar-page *{box-sizing:border-box}
.ar-page a{color:#88412e;text-underline-offset:5px}
.ar-page button{font-family:inherit}
.ar-page :is(a,button,summary):focus-visible{outline:3px solid #994e2e;outline-offset:5px}
.ar-page ::selection{background:#e9c68f;color:#233c49}
.ar-skip{position:absolute;left:12px;top:-120px;z-index:20;padding:10px 16px;border-radius:8px;background:#fffaf2;color:#293c49}
.ar-skip:focus{top:8px}
.ar-page main{font-size:18px;line-height:1.95;color:#293c49;letter-spacing:.025em}
.ar-page main p{font-size:18px;line-height:1.95;color:#344552;overflow-wrap:anywhere}
.ar-page main h2{font-size:clamp(25px,3.1vw,36px);line-height:1.55;letter-spacing:.03em;margin:12px 0 22px;color:#293c49}
.ar-page main h3{line-height:1.65;color:#293c49}
.ar-page main strong{color:#274c4e}
.ar-shell{width:min(calc(100% - 48px),1040px);margin:0 auto}
.ar-site-header{display:flex;align-items:center;justify-content:space-between;gap:20px;width:min(calc(100% - 48px),1200px);margin:0 auto;padding:15px 0;border-bottom:1px solid #b49d7b66;font-size:14px}
.ar-home-brand{display:inline-flex;align-items:center;gap:10px;text-decoration:none;color:#293c49!important;font-weight:700;min-height:44px}
.ar-home-brand img{display:block;border-radius:50%;background:#132a3e;width:36px;height:36px}
.ar-back-link{display:inline-flex;align-items:center;gap:10px;min-height:44px;color:#684e38!important;font-size:13px}
.ar-masthead{padding:42px 0 12px;text-align:left}
.ar-masthead h1{font-size:clamp(34px,5.5vw,58px);line-height:1.5;letter-spacing:.07em;color:#2d4948;margin:16px 0 18px;font-weight:800}
.ar-masthead p{font-size:18px!important;color:#344552!important;line-height:1.85!important}
.ar-room-sign{background:#fff4dc;border-color:#c7aa7b;color:#73502d;padding:7px 18px;box-shadow:0 3px 0 #dac59e;font-size:13px;letter-spacing:.05em}
.ar-nav{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin:22px 0 0;padding:14px;border:1px solid #d8c9ac;border-radius:20px;background:#fffdf8}
.ar-nav a{display:flex;align-items:center;justify-content:center;gap:8px;min-height:54px;padding:7px 10px;border-radius:12px;background:#f2ebdb;font-size:14px;line-height:1.6;font-weight:700;color:#425147;text-decoration:none}
.ar-nav a span{color:#9a4b31;font-size:12px;letter-spacing:.04em}
.ar-nav a:hover{background:#e8ddc8}
.ar-sticker-shelf{display:flex;justify-content:center;align-items:flex-end;gap:clamp(20px,8vw,105px);width:88%;max-width:700px;margin:24px auto 0;border-bottom:5px solid #c09b70;border-radius:0 0 8px 8px;position:relative;pointer-events:none;isolation:isolate}
.ar-sticker-shelf::before,.ar-sticker-shelf::after{content:'';display:block;position:absolute;width:26px;height:31px;top:27px;z-index:-1;clip-path:polygon(50% 0,63% 27%,97% 12%,80% 47%,100% 55%,65% 69%,55% 100%,42% 75%,8% 71%,26% 49%,0 26%,35% 33%);background:#bd6147;transform:rotate(-22deg);left:9%}
.ar-sticker-shelf::after{background:#d3a05c;left:auto;right:7%;top:12px;transform:rotate(23deg)}
.ar-sticker{display:block;background:#fffaf0;border-radius:45% 45% 12px 12px;box-shadow:0 2px 0 #e5d7be;margin-bottom:-2px}
.ar-sticker .am-sprite{--am-size:88px}
.ar-sticker:nth-child(1){transform:rotate(-8deg)}
.ar-sticker:nth-child(3){transform:rotate(7deg)}
.ar-masthead .ar-sticker-shelf{margin-top:22px;max-width:570px}
.ar-masthead .ar-sticker:nth-child(2) .am-sprite{--am-size:118px}
.ar-section{margin:38px 0;scroll-margin-top:24px}
.ar-paper{padding:34px 38px;border:1px solid #ddccb1;border-radius:26px;background:#fffdf8;box-shadow:0 7px 0 #e4d6bf70}
.ar-section-kicker{font-size:13px;color:#945039;letter-spacing:.08em;line-height:1.8}
.ar-section-kicker::before{content:'✿';font-size:18px}
.ar-about-intro{display:grid;grid-template-columns:minmax(0,1fr) 190px;gap:32px;align-items:center}
.ar-about-intro p{max-width:35em;margin:0 0 14px}
.ar-about-portrait{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:12px 0 0;border-radius:100px 100px 30px 30px;background:#f9ebd0;border:1px dashed #c5a779;text-align:left}
.ar-about-portrait .am-sprite{--am-size:176px}
.ar-about-portrait>span:last-child{display:block;font-size:14px;font-weight:700;color:#784b35;line-height:1.7;margin:4px 0 18px}
.ar-passport{gap:16px;margin-top:26px}
.ar-profile-card{display:grid;grid-template-columns:minmax(0,1fr) 68px;gap:12px 10px;align-items:center;padding:22px 24px;background:#f8eddf;border:1px solid #e4cdb1;border-radius:18px}
.ar-profile-card:nth-child(2n){background:#eff3e8;border-color:#d3dbc5}
.ar-card-portrait{grid-column:2;grid-row:1;display:grid;place-items:center}
.ar-card-portrait .am-sprite{--am-size:68px}
.ar-profile-card h3{grid-column:1;grid-row:1;font-size:18px!important;line-height:1.6!important;margin:0!important;color:#784633!important}
.ar-profile-card p{grid-column:1/-1;font-size:17px!important;line-height:1.95!important;color:#344552!important}
.ar-fold{padding:0 22px;background:#fff9ec}
.ar-fold summary{font-size:16px;color:#6a4d33}
.ar-fold dt{color:#85452f}
.ar-section-heading{padding:0 10px 10px;text-align:left}
.ar-section-heading .ar-section-kicker{justify-content:flex-start}
.ar-room{border-radius:25px;background:#fffdf8;box-shadow:0 8px 0 #e4d6bf70}
.ar-room .ar-entry p{font-size:17px!important;color:#344552!important}
.ar-room .ar-room-hint{font-size:14px!important;color:#685239!important;max-width:50em;margin:10px auto 0!important;padding-inline:18px;line-height:1.8!important}
.ar-room .ar-object-tabs button{font-size:15px;line-height:1.7}
.ar-room .ar-object-card{background:#fff8e9;border-color:#c4a678}
.ar-room .ar-object-card h3{font-size:22px!important}
.ar-room .ar-object-card p{font-size:17px!important;color:#344552!important}
.ar-room-motion{margin:18px 0 0}
.ar-room-motion .am-motion{background:#fffaf0}
.ar-story-inset{margin:28px 0 32px;gap:28px;grid-template-columns:1fr 1fr}
.ar-story-inset .ar-story-copy{min-width:0}
.ar-story-inset .ar-story-copy h3{font-size:21px;line-height:1.7}
.ar-story-inset .ar-story-copy p{font-size:17px!important;line-height:1.95!important;margin-bottom:16px}
.ar-story-inset .ar-story-copy .ar-quote{font-size:18px;line-height:1.9;margin:18px 0 0;padding-left:15px;color:#88422f}
.ar-story-figure{padding:10px 10px 15px;transform:rotate(-1.5deg)}
.ar-story-figure figcaption{color:#69513e;font-size:13px}
.ar-note-tabs{padding-left:14px}
.ar-note-tabs button{font-size:14px}
.ar-notebook{padding:30px 35px 30px 60px;background:linear-gradient(90deg,#e4d3b4 0,#e4d3b4 16px,transparent 16px),#fffaf0}
.ar-notebook::before{left:26px}
.ar-journal-entry{padding-right:125px;min-height:290px}
.ar-journal-entry h3{font-size:22px}
.ar-journal-entry p{font-size:18px!important;line-height:1.95!important}
.ar-journal-entry .am-sprite{--am-size:130px}
.ar-gallery{margin:42px 0}
.ar-gallery .am-gallery-current{display:grid;grid-template-columns:180px minmax(0,1fr);align-items:center;gap:18px;padding:16px 24px;background:#f5eedc;text-align:left}
.ar-gallery .am-gallery-current .am-sprite{--am-size:175px}
.ar-gallery .am-gallery-current p{color:#293c49!important;margin:0!important;font-size:18px!important;line-height:1.9!important;overflow-wrap:anywhere}
.ar-gallery .am-pose-picker{grid-template-columns:repeat(6,minmax(0,1fr));gap:12px}
.ar-gallery .am-pose-picker button{font-size:14px;line-height:1.7;padding:12px 4px;border:1px solid #d4bda0;background:#fff6e8;min-width:0;color:#344552}
.ar-gallery .am-pose-picker button:nth-child(3n+2){background:#f2f4e8}
.ar-gallery .am-pose-picker button:nth-child(3n){background:#f7e9e2}
.ar-gallery .am-pose-picker .am-sprite{--am-size:100%;width:100%;height:auto;aspect-ratio:1}
.ar-gallery .am-pose-picker button[aria-pressed="true"]{outline-color:#a65336}
.ar-support{margin-top:42px;grid-template-columns:175px minmax(0,1fr);gap:26px;padding:30px 34px;background:#eef2e5;border-color:#c8d1b5}
.ar-support-actor .am-sprite{--am-size:165px}
.ar-support .ar-support-response{font-size:17px!important;color:#344552!important}
.ar-page .aw-letter{margin:34px auto;max-width:800px;padding:0 8px}
.ar-page .aw-letter>summary{background:#f4dfbc;border-color:#c6a377;color:#33454a}
.ar-page .aw-letter>summary small{color:#664a2f;font-size:14px}
.ar-page .aw-letter-paper{background:#fffdf8}
.ar-page .aw-letter-paper p{color:#344552!important;font-size:18px!important;line-height:1.95!important}
.ar-farewell{margin:42px 0 38px;padding:32px 22px;background:#fffdf8;border:1px solid #ddccb1;border-radius:45px 18px 45px 18px}
.ar-farewell h2{font-size:28px!important}
.ar-farewell p{font-size:17px!important}
.ar-site-footer{text-align:left;padding:28px 20px 35px;border-top:1px solid #cbb995;background:#eee2ca;color:#66503d;font-size:14px;line-height:1.8}
.ar-site-footer p{margin:0 0 4px;font-weight:700}
.ar-site-footer a{display:inline-flex;align-items:center;min-height:44px;color:#71462f}
.ar-site-footer small{display:block;font-size:12px;margin-top:10px}
@media (max-width:760px){
 .ar-shell{width:calc(100% - 28px)}
 .ar-site-header{width:calc(100% - 30px);padding:10px 0;gap:12px}
 .ar-masthead{padding:30px 0 8px}
 .ar-masthead h1{font-size:clamp(31px,8.5vw,42px);letter-spacing:.04em}
 .ar-masthead p{font-size:16px!important;line-height:1.9!important}
 .ar-room-sign{font-size:12px;padding:7px 12px}
 .ar-nav{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;padding:10px;border-radius:17px;margin-top:20px}
 .ar-nav a{min-height:50px;font-size:13px;gap:6px;padding:8px 4px}
 .ar-sticker-shelf{width:94%;gap:28px;margin-top:24px}
 .ar-sticker .am-sprite{--am-size:64px}
 .ar-masthead .ar-sticker:nth-child(2) .am-sprite{--am-size:88px}
 .ar-sticker-shelf::before,.ar-sticker-shelf::after{width:18px;height:22px;left:2%;top:20px}
 .ar-sticker-shelf::after{left:auto;right:2%}
 .ar-section{margin:28px 0}
 .ar-paper{padding:25px 19px;border-radius:20px}
 .ar-page main p{font-size:17px;line-height:1.95}
 .ar-page main h2{font-size:26px;line-height:1.55;margin:12px 0 18px}
 .ar-section-kicker{font-size:12px;letter-spacing:.06em}
 .ar-about-intro{grid-template-columns:minmax(0,1fr);gap:14px}
 .ar-about-portrait{width:166px;justify-self:center;padding-top:7px;margin:0 0 5px}
 .ar-about-portrait .am-sprite{--am-size:138px}
 .ar-about-portrait>span:last-child{margin-bottom:14px;font-size:13px}
 .ar-passport{grid-template-columns:1fr;gap:14px;margin-top:20px}
 .ar-profile-card{grid-template-columns:minmax(0,1fr) 58px;padding:18px;gap:10px}
 .ar-card-portrait .am-sprite{--am-size:58px}
 .ar-profile-card h3{font-size:17px!important}
 .ar-profile-card p{font-size:16px!important;line-height:1.95!important}
 .ar-fold{padding:0 17px}.ar-fold summary{font-size:15px}
 .ar-section-heading{padding:0 4px 8px}
 .ar-section-heading p{font-size:16px!important}
 .ar-room .ar-entry p{font-size:16px!important}
 .ar-room .ar-object-card h3{font-size:20px!important}
 .ar-room .ar-object-card p{font-size:16px!important}
 .ar-room .ar-object-tabs button{font-size:14px}
 .ar-story-inset{grid-template-columns:1fr;gap:26px;margin:22px 0 25px}
 .ar-story-inset .ar-story-copy{padding:0}
 .ar-story-inset .ar-story-copy p{font-size:16px!important}
 .ar-note-tabs{padding-left:0;gap:5px;flex-wrap:nowrap}
 .ar-note-tabs button{flex:1;min-width:0;font-size:12px;padding:9px 4px;line-height:1.7;overflow-wrap:anywhere}
 .ar-notebook{padding:25px 16px 25px 31px;border-radius:10px;background:linear-gradient(90deg,#e4d3b4 0,#e4d3b4 8px,transparent 8px),#fffaf0}
 .ar-notebook::before{left:14px;width:5px;background-size:5px 30px}
 .ar-journal-entry{padding-right:0;padding-bottom:108px;min-height:0}
 .ar-journal-entry h3{font-size:20px!important}
 .ar-journal-entry p{font-size:16px!important;line-height:2!important}
 .ar-journal-entry .am-sprite{--am-size:108px;right:0;bottom:0}
 .ar-journal-entry .ar-stamp{font-size:15px}
 .ar-gallery .am-gallery-current{grid-template-columns:1fr;gap:10px;text-align:left;padding:18px}
 .ar-gallery .am-gallery-current .am-sprite{--am-size:152px}
 .ar-gallery .am-gallery-current p{font-size:16px!important}
 .ar-gallery .am-pose-picker{grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-top:18px}
 .ar-gallery .am-pose-picker button{font-size:12px;padding:8px 3px}
 .ar-support{grid-template-columns:1fr;gap:14px;padding:27px 21px;margin-top:28px}
 .ar-support-actor .am-sprite{--am-size:145px}
 .ar-support p,.ar-support .ar-support-response{font-size:16px!important}
 .ar-page .aw-letter>summary{padding:20px 16px;gap:12px;min-height:116px}
 .ar-page .aw-letter>summary strong{font-size:17px}.ar-page .aw-letter>summary small{font-size:13px}
 .ar-page .aw-envelope-seal{width:42px;height:42px;font-size:21px}
 .ar-page .aw-letter-paper{padding:23px 17px;margin-inline:4px}
 .ar-page .aw-letter-paper p{font-size:16px!important;line-height:2!important}
 .ar-page .aw-letter-sign{font-size:15px}.ar-page .aw-letter-sign .am-sprite{--am-size:68px}
 .ar-farewell{padding:26px 17px;margin:28px 0}
 .ar-farewell p{font-size:16px!important}
 .ar-farewell-actions{flex-direction:column;gap:12px}
}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}.ar-page *,.ar-page *::before,.ar-page *::after{animation:none!important;transition:none!important}}
@media print{body.ar-page{background:#fff}.ar-site-header,.ar-nav,.ar-room-motion,.ar-site-footer{display:none}.ar-paper{box-shadow:none}.ar-shell{width:100%}}

/* 本文の両端を揃え、欄の幅いっぱいで自然に折り返す。最終行は引き伸ばさない。 */
.ar-page main :is(p,h1,h2,h3,blockquote,dd,figcaption){text-align:justify;text-align-last:start;text-justify:inter-character;word-break:normal;line-break:strict;overflow-wrap:normal;text-wrap:wrap}
.ar-page main :is(p,dd){max-width:none;min-width:0}
.ar-page main :is(summary,dt,.ar-small-label){word-break:normal;line-break:strict;overflow-wrap:normal;text-wrap:wrap}
.ar-page .ar-masthead,.ar-page .ar-section-heading,.ar-page .ar-support,.ar-page .ar-farewell{text-align:left}
.ar-page .ar-room-sign{transform:none}
.ar-page .ar-section-heading .ar-section-kicker{justify-content:flex-start}
.ar-page .ar-about-portrait>span:last-child{padding-inline:12px;text-align:justify;text-align-last:start;line-break:strict;text-wrap:wrap}
.ar-page .ar-room .ar-entry{justify-content:flex-start;align-items:flex-start}
.ar-page .ar-room .ar-entry p{flex:1 1 16em;text-align:justify}
.ar-page .ar-room .ar-welcome-speech{max-width:none;min-height:0;padding:16px 0 0;margin:0 24px!important;text-align:justify;line-height:1.95!important}
.ar-page .ar-room .ar-room-hint{max-width:none;padding:0;margin:14px 24px 0!important;text-align:justify}
.ar-page .ar-gallery .am-gallery-current{justify-items:stretch;text-align:left}
.ar-page .ar-gallery .am-gallery-current p{text-align:justify;overflow-wrap:normal;width:auto;justify-self:stretch}
.ar-page .ar-gallery .am-gallery-current .am-react{justify-self:center}
.ar-page .ar-support .ar-support-response{min-height:0;text-align:justify}
.ar-page .ar-farewell .am-sprite{margin:0 0 16px}
.ar-page .ar-farewell-actions{justify-content:flex-start;align-items:flex-start}
.ar-page .ar-story-figure figcaption{text-align:justify}
.ar-page .aw-letter summary{align-items:flex-start;text-align:justify;text-align-last:start;text-justify:inter-character}
.ar-page .aw-letter summary>span:not(.aw-envelope-seal){min-width:0;flex:1}
.ar-page .aw-letter-sign{flex-wrap:wrap;justify-content:flex-start;text-align:left}
/* ノートの本文右側に空きを作らず、はなまるとイラストは本文の下に並べる。 */
.ar-page .ar-journal-entry{padding-right:0;padding-bottom:0;min-height:0}
.ar-page .ar-journal-keepsakes{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:16px;margin-top:18px}
.ar-page .ar-journal-keepsakes .ar-stamp{flex:0 1 auto;max-width:100%;margin:0}
.ar-page .ar-journal-keepsakes .am-sprite{position:static;flex-shrink:0;margin-left:auto}
@media (max-width:760px){
 .ar-page .ar-room .ar-entry{display:flex;flex-direction:column;align-items:stretch;gap:12px}
 .ar-page .ar-room .ar-entry p{flex:auto}
 .ar-page .ar-room .ar-entry button{align-self:flex-start}
 .ar-page .ar-room .ar-welcome-speech{margin-inline:20px!important}
 .ar-page .ar-room .ar-room-hint{margin-inline:20px!important}
 .ar-page .ar-support{text-align:left}
}

/* お部屋の絵を隠さず、近くの余白から案内する。 */
.ar-page .ar-hotspot[data-aw-object="notebook"]{left:26%;top:70%}
.ar-page .ar-hotspot[data-aw-object="belt"]{left:30%;top:21%}
.ar-page .ar-hotspot[data-aw-object="window"]{left:50%;top:63%}
.ar-page .ar-hotspot[data-aw-object="flag"]{left:93%;top:23%}
.ar-page .ar-fold dt{font-size:17px;line-height:1.7;font-weight:700}

/* 封ろうに添えた鉛筆と、宛名・罫線・署名のある便箋。 */
.ar-page .aw-letter>summary{align-items:center;gap:32px}
.ar-page .aw-letter .aw-envelope-seal{position:relative;overflow:visible}
.ar-page .aw-letter-pencil{position:absolute;right:-20px;bottom:-13px;width:56px;height:56px;pointer-events:none;filter:drop-shadow(0 2px 1px #6b482929)}
.ar-page .aw-letter-paper{--aw-letter-leading:36px;margin-inline:12px;padding:34px 38px 28px;background:#fffdf6;border-color:#d6c3a4;border-radius:0 0 8px 8px;box-shadow:0 5px 0 #f1e5d1,0 6px 0 #d7c5a8,0 12px 22px #5c402316}
.ar-page .aw-letter .aw-letter-to{margin:0 0 26px!important;color:#684732!important;font-size:18px!important;font-weight:700;text-align:left;text-align-last:start}
.ar-page .aw-letter-body{background-image:repeating-linear-gradient(to bottom,transparent 0,transparent calc(var(--aw-letter-leading) - 1px),#dac7a480 calc(var(--aw-letter-leading) - 1px),#dac7a480 var(--aw-letter-leading))}
.ar-page .aw-letter .aw-letter-body p{margin:0 0 var(--aw-letter-leading)!important;line-height:var(--aw-letter-leading)!important;text-indent:1em;text-align:justify;text-align-last:start}
.ar-page .aw-letter .aw-letter-body p:first-child{text-indent:0}
.ar-page .aw-letter .aw-letter-body p:last-child{margin-bottom:0!important}
.ar-page .aw-letter .aw-letter-sign{justify-content:flex-end;align-items:center;gap:12px;margin-top:28px;text-align:right}
.ar-page .aw-letter-sign-copy{min-width:0}
.ar-page .aw-letter-sign-copy span{display:block;font-size:13px;font-weight:400;color:#6b5743}
.ar-page .aw-letter-sign-copy strong{display:block;margin-top:4px;color:#85452f;font-family:'Yu Mincho','Hiragino Mincho ProN',serif;font-size:25px;line-height:1.65;letter-spacing:.08em}
.ar-page .aw-letter-return{padding:20px 12px 4px;text-align:center}
/* 最後のあいさつは、あいまると見出しを中央に。本文は両端揃えを維持する。 */
.ar-page .ar-farewell>.am-sprite{margin:0 auto 16px}
.ar-page .ar-farewell>h2{text-align:center;text-align-last:center}
@media (max-width:760px){
 .ar-page .aw-letter>summary{gap:24px}
 .ar-page .aw-letter-pencil{width:40px;height:40px;right:-14px;bottom:-11px}
 .ar-page .aw-letter-paper{--aw-letter-leading:32px;margin-inline:4px;padding:26px 18px 22px}
 .ar-page .aw-letter .aw-letter-to{font-size:16px!important;margin-bottom:22px!important}
 .ar-page .aw-letter .aw-letter-sign{gap:8px;margin-top:24px}
 .ar-page .aw-letter-sign-copy span{font-size:12px}
 .ar-page .aw-letter-sign-copy strong{font-size:22px}
}
