@charset "UTF-8";
/* r3: 中学受験のミカタの実際の配色と丸ゴシック。 */
@font-face{font-family:"Mikata Maru";src:url('./assets/fonts/ZenMaruGothic-Medium.woff2') format('woff2');font-style:normal;font-weight:400 500;font-display:swap}
@font-face{font-family:"Mikata Maru";src:url('./assets/fonts/ZenMaruGothic-Bold.woff2') format('woff2');font-style:normal;font-weight:600 900;font-display:swap}
:root{color-scheme:light;--orange:#f89818;--orange-deep:#af4318;--yellow:#f8d020;--paper:#fffefa;--warm:#f7f2e7;--ink:#2d251e;--cream:#fffefa;--gold:#af4318;--round:"Mikata Maru","Zen Maru Gothic","Hiragino Maru Gothic ProN","Yu Gothic",Meiryo,sans-serif;--serif:var(--round);--sans:var(--round)}
html,body{background:var(--warm);color:var(--ink);font-family:var(--round);font-weight:500}
button,input,a{font-family:inherit}button:focus-visible,a:focus-visible,input:focus-visible{outline-color:var(--orange-deep)}
.scene-shade{background:linear-gradient(180deg,rgba(255,254,250,.82),rgba(255,248,228,.22) 29%,transparent 43%,rgba(255,252,242,.35) 63%,rgba(255,252,242,.94) 81%,#fffefa 100%)}
.grain{opacity:.023}#curtain{background:#fff8e9}
#fallback{background:linear-gradient(#a7def0,#fff1ca 65%,#a4ca83)}.fallback-mountain{background:#85ae83}
.brand{color:var(--ink);text-shadow:0 1px 8px #fffefa80}.brand svg{stroke:var(--orange-deep);stroke-width:2}.brand strong{font-weight:700;letter-spacing:.035em}.brand small{font-weight:500}
.header-actions{color:var(--ink);font-weight:700}.menu-button{background:#fffefae8;border:1px solid #d98a3877;border-radius:16px;box-shadow:0 3px 15px #76441308}
.cover{color:var(--ink);text-shadow:0 2px 18px #fffefaaa}.cover h1{color:var(--orange-deep);font-weight:700;line-height:1.4;letter-spacing:.015em;text-shadow:0 2px 0 #fff9e8b3,0 0 32px #fffefa66}.cover .eyebrow{color:#794421;font-weight:700}.cover-sub{font-weight:500;color:#493523;letter-spacing:.01em}
.chapter-heading{text-shadow:0 2px 10px #fffefa99}.chapter-heading>p{color:var(--orange-deep);font-weight:700;letter-spacing:.08em}.chapter-heading h2{color:var(--ink);font-weight:700;letter-spacing:.015em}
.narrative{text-shadow:0 1px 8px #fffefa99}.narrative p{font-family:var(--round);font-weight:500;letter-spacing:0;line-height:1.75;color:var(--ink)}
.primary,.consult-button{background:var(--orange);border:2px solid #ffbd60;color:var(--ink);border-radius:22px;box-shadow:0 7px 0 #c570191c,0 10px 26px #a8571424;font-weight:700}
.primary:hover,.consult-button:hover{background:#ffab32;color:var(--ink);box-shadow:0 7px 0 #c570192b,0 10px 30px #e1862633}
.action-orbit{background:#fffefa90;border-color:#9a511979;color:var(--orange-deep)}.action-orbit:before{border-color:#a9532e55}.step-status{color:#814419;font-weight:700}
.text-button{color:var(--orange-deep);text-decoration-color:#b96e3280;font-weight:500}.text-button:hover{color:#7c3415}.story-footer{color:#674a30;font-weight:500}.story-footer button:hover{color:var(--orange-deep)}
.teacher-panel{background:#fffefaef;color:var(--ink);border:1px solid #efba7377;border-radius:22px;box-shadow:0 14px 42px #794a2520}.teacher-panel>img{border-radius:14px}.teacher-panel p{font-family:var(--round);font-weight:700;color:var(--orange-deep)}.teacher-panel h3{font-weight:700}.teacher-panel .text-button{color:var(--orange-deep)}
.ending{text-shadow:none}.ending .eyebrow{color:#70451f;font-weight:700}.ending h2{font-family:var(--round);font-weight:500;line-height:1.8;color:var(--ink)}.ending h2 em{color:var(--orange-deep);font-weight:700;letter-spacing:0;line-height:1.55}.ending-note{color:#493523;font-weight:500}
#experience[data-role="ending"] .scene-shade{background:linear-gradient(90deg,#fff9e9f0,rgba(255,251,235,.89) 43%,rgba(255,245,218,.12) 83%),linear-gradient(0deg,#fffefa,transparent 30%)}
#experience[data-interaction="moon"] .scene-shade{background:linear-gradient(180deg,rgba(13,42,66,.1),transparent 45%,rgba(255,247,225,.14) 57%,rgba(255,252,242,.95) 79%,#fffefa)}
#experience[data-interaction="moon"] .brand,#experience[data-interaction="moon"] .header-actions,#experience[data-interaction="moon"] .chapter-heading h2{color:var(--paper);text-shadow:0 2px 8px #17345166}
#experience[data-interaction="moon"] .brand svg{stroke:#ffb64d}#experience[data-interaction="moon"] .chapter-heading>p{color:#ffb64d}#experience[data-interaction="moon"] .menu-button{color:var(--ink);text-shadow:none}
#experience[data-interaction="moon"] .chapter-heading{text-shadow:none}
.moon-controller{background:#fffefaF2;color:var(--ink);border:2px solid #f5b455;border-radius:20px;box-shadow:0 12px 30px #91622022}.moon-observation small,.moon-observation strong,.moon-labels{color:var(--ink)}.moon-range input{accent-color:var(--orange-deep)}.moon-note{color:#5c452a}.moon-disc{filter:drop-shadow(0 0 10px #efb46c33)}
.paper-dialog{background:var(--paper);color:var(--ink);font-family:var(--round);border-color:#edbd77;border-radius:22px;box-shadow:0 24px 100px #613d2333}.paper-dialog::backdrop{background:#835a354d;backdrop-filter:blur(7px)}.paper-dialog .eyebrow{color:var(--orange-deep);font-weight:700}.paper-dialog h2,.reading-dialog h3{font-family:var(--round);font-weight:700;color:var(--orange-deep)}.dialog-close{background:#ffedd0;color:#834220}.paper-dialog .consult-button{background:var(--orange);color:var(--ink);border-color:#ffba59}.paper-dialog .consult-button:hover{background:#ffac35}.parent-teacher{border-color:#e2caa5}.parent-teacher img{border-radius:14px}.parent-teacher h3{font-weight:700}.contents-dialog li{border-color:#e7d3b5}.contents-dialog li span{color:#95511c}.contents-dialog li button:hover{background:#fff1d9}.contents-dialog li b{font-weight:700}.contents-dialog li [aria-current="step"] b{color:var(--orange-deep)}.reading-settings button{border-color:#e4b574;border-radius:12px}.reading-settings [aria-pressed="true"]{background:var(--orange);color:var(--ink)}.reading-dialog aside,.discovery-question{background:#fff1d8;border-color:var(--orange);color:var(--ink)}.discovery-question{font-family:var(--round);font-weight:700;border-radius:0 12px 12px 0}.reading-dialog article{border-color:#e9d8bd}.skip-link{background:var(--paper);color:var(--ink)}.noscript{background:var(--warm);color:var(--ink)}
@media(max-width:700px){
 .scene-shade{background:linear-gradient(180deg,#fffefaed,rgba(255,250,228,.18) 31%,transparent 40%,rgba(255,250,236,.70) 58%,#fffaf0f7 74%,#fffefa)}
 .cover .eyebrow{font-size:18px;letter-spacing:0}.cover h1{line-height:1.4}.cover-sub{line-height:1.7}
 .narrative p{line-height:1.75}.primary,.consult-button{border-radius:18px}.menu-button{border-radius:13px}
 .teacher-panel{border-radius:18px}.paper-dialog{border-radius:18px}
 #experience[data-interaction="moon"] .scene-shade{background:linear-gradient(180deg,transparent,transparent 37%,rgba(255,248,228,.15) 43%,#fffaf0f2 66%,#fffefa)}
 #experience[data-role="ending"] .scene-shade{background:linear-gradient(90deg,#fff9e9e8,rgba(255,251,235,.79) 70%,rgba(255,245,218,.25))}
 #experience[data-role="ending"]:after{background:linear-gradient(transparent,#fffefa 26%)}
}
@media(max-width:380px){.cover .eyebrow{font-size:17px}.cover h1{font-size:38px;letter-spacing:0}.cover-sub{font-size:20px;line-height:1.65}.narrative p{line-height:1.65}.chapter-heading h2{letter-spacing:0}}
/* テキストがひとかたまりずつ現れる。レイアウトや操作可能時刻は動かさない。 */
@keyframes story-text-in{from{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}
.text-reveal{animation:story-text-in .78s cubic-bezier(.18,.72,.28,1) both;animation-delay:var(--text-delay,0ms)}
@media(prefers-reduced-motion:reduce){.text-reveal{animation:none!important}}
.reduce-motion .text-reveal{animation:none!important}

/* r4: 芽から月へ旅する絵本の表紙と、行動を描いたページのボタン。 */
.book-title{position:relative;width:max-content;max-width:100%;margin:auto;isolation:isolate}
.cover h1{position:relative;z-index:1;paint-order:stroke fill;-webkit-text-stroke:5px #fff7df;text-shadow:0 4px 0 #e8c38f,0 10px 24px #b4783220}
.title-line{display:block;transform:rotate(-1.1deg);transform-origin:50% 65%;color:#88411f}
.title-line:nth-child(even){color:#b85718;transform:rotate(1deg);letter-spacing:.045em}
.title-flourish{position:absolute;bottom:-10px;left:12%;width:76%;height:24px;z-index:-1;overflow:visible}
.cover-sprig,.cover-sky{position:absolute;pointer-events:none;filter:drop-shadow(0 4px 0 #fff7df70)}
.cover-sprig{width:90px;height:135px;left:-108px;top:40px;transform:rotate(-13deg)}
.cover-sky{width:80px;height:112px;right:-78px;top:65px;transform:rotate(10deg)}
.cover .eyebrow{display:inline-block;text-wrap:balance;position:relative;padding:4px 22px;border-top:1px solid #bd834c77;border-bottom:1px solid #bd834c77;background:linear-gradient(90deg,transparent,#fff9e477 12%,#fff9e477 88%,transparent)}
.cover .eyebrow:before,.cover .eyebrow:after{content:"";position:absolute;width:6px;height:6px;background:#c57d28;top:calc(50% - 3px);transform:rotate(45deg)}
.cover .eyebrow:before{left:0}.cover .eyebrow:after{right:0}
.chapter-heading>p{display:flex;align-items:center;gap:10px;width:max-content;position:relative}
.chapter-heading>p:after{content:"";height:1px;width:62px;background:currentColor;opacity:.45;margin-left:3px}
.chapter-heading>p svg{width:25px;height:27px;flex-shrink:0}
.chapter-heading h2{display:block;background:none}
.chapter-heading h2>span{box-decoration-break:clone;-webkit-box-decoration-break:clone;background:linear-gradient(transparent 81%,#f8d02066 81%,#f8d02066 94%,transparent 94%);padding-bottom:4px}
#experience[data-interaction="moon"] .chapter-heading h2>span{background:linear-gradient(transparent 81%,#f898184f 81%,#f898184f 94%,transparent 94%)}
.primary,.consult-button{position:relative;isolation:isolate;overflow:visible;border:2px solid #b7631c;border-radius:15px 30px 15px 30px;background:linear-gradient(110deg,#ffb541 0%,#f89818 75%,#ee8c17 100%);box-shadow:0 5px 0 #b96422,0 10px 0 #fffefa85,0 14px 25px #a8571426;gap:14px;transition:background .2s,box-shadow .2s,transform .2s}
.primary:before,.consult-button:before{content:"";position:absolute;inset:6px;border:1px dashed #fff8d9b3;border-radius:9px 23px 9px 23px;pointer-events:none;z-index:-1}
.primary:hover,.consult-button:hover{background:linear-gradient(110deg,#ffcb6d,#ffa623);box-shadow:0 7px 0 #b96422,0 12px 0 #fffefa85,0 17px 30px #a8571433;transform:translateY(-2px)}
.primary:active:not(:disabled),.consult-button:active{transform:translateY(3px);box-shadow:0 2px 0 #b96422,0 6px 15px #a8571426}
.primary:disabled{cursor:wait;transform:none}
.primary>*,.consult-button>*{position:relative}
.action-orbit{width:38px;height:40px;background:#fff5d8;border:0;border-radius:40% 52% 42% 48%;color:#95441d;box-shadow:0 2px 0 #c8782944;transform:rotate(-7deg)}
.action-orbit:before{content:none;animation:none}
.action-orbit svg{width:27px;height:29px;transform:rotate(7deg);transition:transform .25s}
.action-arrow{display:inline-block;flex-shrink:0;font-size:26px;line-height:1;font-weight:500;transition:transform .25s;color:#793d1e}
.primary:hover .action-arrow,.consult-button:hover .action-arrow{transform:translateX(4px)}
.primary:hover .action-orbit svg{transform:rotate(-5deg)}
#primary-label{min-width:0;text-align:center;text-wrap:balance}
.consult-button>svg{width:30px;height:32px;color:#8b431f;flex-shrink:0}
.consult-label{white-space:nowrap}
.paper-dialog .consult-button{background:linear-gradient(110deg,#ffb541,#f89818);border-color:#b7631c}
.ending h2 em{text-decoration:underline;text-decoration-color:#f3bd6177;text-decoration-thickness:.12em;text-underline-offset:.07em}
.menu-button{border-radius:10px 18px 10px 18px;box-shadow:0 3px 0 #d2ae7170}
#discovery-open{text-decoration-style:dotted;text-decoration-thickness:2px}
@media(min-width:701px){#experience[data-role="cover"] .primary{padding:18px 30px;gap:18px;min-width:340px}#experience[data-role="cover"] .action-orbit{width:42px;height:44px}}
@media(max-width:1100px){.cover-sprig{width:72px;height:108px;left:-80px;top:35px}.cover-sky{width:64px;height:94px;right:-68px;top:55px}}
@media(max-width:700px){
 .cover .eyebrow{padding:3px 12px;line-height:1.5;margin-bottom:22px;border-color:#bd834c55}
 .cover h1{-webkit-text-stroke:3px #fff7df;text-shadow:0 3px 0 #e8c38f,0 7px 17px #b4783215}
 .title-line:nth-child(even){letter-spacing:0}
 .title-flourish{height:16px;bottom:-9px;left:12%;width:76%}
 .cover-sprig{width:38px;height:57px;left:-11px;top:auto;bottom:1px;z-index:2;transform:rotate(-18deg)}
 .cover-sky{width:34px;height:49px;right:-3px;top:-24px;z-index:2}
 .cover-sub{margin-top:27px}
 .chapter-heading>p{gap:8px}.chapter-heading>p svg{width:23px;height:24px}.chapter-heading>p:after{width:44px}
 .primary,.consult-button{border-radius:12px 24px 12px 24px;gap:10px;padding:14px}
 .primary:before,.consult-button:before{border-radius:7px 18px 7px 18px;inset:5px}
 .action-orbit{width:30px;height:32px}.action-orbit svg{width:23px;height:25px}.action-arrow{font-size:21px}
 #experience[data-role="cover"] .primary{font-size:22px;padding:17px 14px;gap:10px}
 #experience[data-role="cover"] .action-area{min-width:0;width:100%;max-width:335px}
 .ending .consult-button{padding:16px 14px;gap:12px}
}
@media(max-width:380px){
 .cover .eyebrow{margin-bottom:17px;padding:2px 12px;font-size:17px}
 .cover-sprig{left:-10px;width:32px;height:48px;bottom:4px}.cover-sky{right:0;width:29px;height:43px;top:-19px}
 .cover-sub{margin-top:24px}
 .primary{padding:12px 10px;gap:8px}.primary .action-arrow{font-size:18px}
 .action-orbit{width:28px;height:30px}
 #experience[data-role="cover"] .primary{padding:17px 10px;gap:8px}
 .paper-dialog .consult-button{min-width:0;width:100%;padding:15px 12px;gap:8px;font-size:22px}
}
@media(prefers-reduced-motion:reduce){.primary,.consult-button,.action-arrow,.action-orbit svg{transition:none!important}}

.chapter-heading h2>.title-phrase{display:inline-block;max-width:100%}

@media(max-height:720px) and (max-width:700px){.teacher-panel{top:212px;padding:12px 14px}.teacher-panel>img{height:103px}}

/* r5: 根木案件の公式ロゴ（元画像そのまま）。 */
.brand{width:280px;max-width:100%;min-width:0;flex:0 1 auto;display:block;padding:0;background:#fff;border-radius:8px;text-shadow:none}
.brand-logo{display:block;width:100%;height:auto;aspect-ratio:600/176;object-fit:contain;border-radius:8px}
.header-actions{flex-shrink:0}
@media(max-width:1100px){.brand{width:245px}}
@media(max-width:700px){.brand{width:200px}.brand,.brand-logo{border-radius:6px}}
