.hidden-sealed-paper { position:relative; isolation:isolate; min-height:240px; overflow:hidden; background:linear-gradient(145deg,#e9dfcd,#f5eddf 65%,#dbcbb5); }
.hidden-sealed-paper::before { content:""; position:absolute; width:58%; height:62%; left:21%; top:20%; transform:rotate(-7deg); background:#fff9ee; border:1px solid #d2bfa7; box-shadow:7px 8px 0 #e8dac6,9px 10px 0 #cab497,18px 22px 30px #6c4a3422; }
.hidden-sealed-paper::after { content:"月"; display:grid; place-items:center; position:absolute; top:46%; left:calc(50% - 24px); width:48px; height:48px; border:1px solid #874954; border-radius:50%; outline:3px solid #b78e73; outline-offset:5px; color:#f9ebd6; background:#874954; font-family:var(--serif); font-size:25px; transform:rotate(-7deg); }
.snack-book-hidden figure { width:100%; min-height:0; aspect-ratio:3/2; }
.snack-book-hidden figure img { width:100%; height:100%; object-fit:cover; }
.snack-book-hidden .hidden-library-progress { font-size:13px; }
.snack-book-hidden[data-unlocked="false"] { border-style:dashed; }
.hidden-gate { max-width:700px; margin:0 auto; padding:35px 28px 70px; text-align:center; }
.hidden-gate > .text-button { display:block; margin-bottom:35px; }
.hidden-gate .hidden-sealed-paper { max-width:400px; min-height:250px; margin:0 auto 35px; background:transparent; }
.hidden-gate .hidden-sealed-paper::before { transform-origin:50% 85%; transition:transform .6s cubic-bezier(.2,.6,.2,1),box-shadow .6s; }
.hidden-gate .hidden-sealed-paper::after { transition:opacity .35s,transform .6s; }
.hidden-gate.is-opening .hidden-sealed-paper::before { transform:perspective(600px) rotateX(28deg) rotate(0) scale(1.15); box-shadow:6px 16px 30px #6c4a3433; }
.hidden-gate.is-opening .hidden-sealed-paper::after { opacity:0; transform:translateY(30px) rotate(16deg); }
body[data-motion="off"] .hidden-gate .hidden-sealed-paper::before,body[data-motion="off"] .hidden-gate .hidden-sealed-paper::after { transition:none; }
.hidden-gate .eyebrow { margin-bottom:12px; }
.hidden-gate h1 { font-family:var(--serif); font-size:clamp(27px,5vw,42px); font-weight:400; }
.hidden-gate-copy { margin:26px auto 24px; max-width:460px; line-height:1.95; word-break:keep-all; overflow-wrap:anywhere; }
.hidden-count { color:var(--accent); font-family:var(--serif); font-size:28px; }
.hidden-gate progress { width:min(270px,100%); height:7px; margin:10px 0 22px; accent-color:var(--accent); }
.hidden-gate .field-note { max-width:430px; margin:0 auto 30px; }
.hidden-gate > .primary-button,.hidden-gate > .secondary-button { display:block; width:100%; max-width:340px; margin:12px auto 0; }
.hidden-result-invitation { display:block; max-width:700px; padding:22px 20px; margin:25px auto 0; border-block:1px solid var(--line); color:var(--accent); text-align:center; text-underline-offset:5px; font-size:15px; }
.hidden-reading-note { padding:35px 0 40px; text-align:center; border-bottom:1px solid var(--line); }
.hidden-stem { margin:18px auto; color:var(--accent); font-family:var(--serif); font-size:110px; line-height:1.2; }
.hidden-reading-note h2 { font-size:17px; font-weight:500; letter-spacing:.05em; color:var(--muted); }
.hidden-reading-note > p:not(.eyebrow) { margin:35px 0 0; text-align:left; font-family:var(--serif); font-size:clamp(18px,2.4vw,23px); line-height:1.95; }
.hidden-next-cycle { padding:38px 0 32px; }
.hidden-next-cycle h3 { margin:12px 0 22px; font-family:var(--serif); font-size:clamp(23px,3vw,30px); font-weight:400; }
.hidden-next-cycle > p:not(.eyebrow):not(.field-note) { line-height:1.9; }
.hidden-next-cycle .field-note { margin-top:20px; }
.hidden-basis { border-block:1px solid var(--line); margin:20px 0 35px; padding:20px 0; color:var(--muted); }
.hidden-basis summary { cursor:pointer; }
.hidden-basis p { margin:18px 0 0; font-size:14px; line-height:1.85; }
body[data-kind="hidden"] .input-art img { object-fit:cover; }
@media(max-width:480px){.hidden-gate{padding:25px 19px 45px}.hidden-gate .hidden-sealed-paper{min-height:205px}.hidden-gate-copy{font-size:15px}.hidden-stem{font-size:88px}.hidden-reading-note{padding-top:22px}.hidden-next-cycle{padding-top:28px}.hidden-result-invitation{margin-inline:18px}}
