/* Single-pass, staggered title and thorn reveals. */
.thorn-await::after{clip-path:inset(0 100% 0 0)}
.thorn-await.thorn-arrived{animation:title-arrive 1.35s ease-out .1s both}
.thorn-await.thorn-arrived::after{animation:thorn-unfurl 2s ease-out 1s both}
@keyframes title-arrive{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}
@keyframes thorn-unfurl{to{clip-path:inset(0 0 0 0)}}
.button-glint{position:absolute!important;inset:-2px;width:calc(100% + 2px)!important;height:calc(100% + 2px)!important;overflow:visible;pointer-events:none;display:block!important;border-radius:inherit;opacity:0}
.button-glint rect{width:calc(100% - 2px);height:calc(100% - 2px);fill:none;stroke:#ffacb6;stroke-width:2;stroke-dasharray:12 88;stroke-linecap:round;filter:drop-shadow(0 0 3px #ff254d)}
.glint-running>.button-glint{animation:glint-visibility .75s ease-out}
.glint-running>.button-glint rect{animation:glint-orbit .75s linear}
@keyframes glint-orbit{from{stroke-dashoffset:0}to{stroke-dashoffset:-100}}
@keyframes glint-visibility{0%,100%{opacity:0}15%,80%{opacity:1}}
.bottom-nav a.is-current{background:linear-gradient(145deg,#74132c,#290d1c);border-color:#d04b65;color:#fff0ed;box-shadow:inset 0 0 18px #b8203a33,0 0 16px #b8203a30}
.bottom-nav a.is-current:after{content:'';position:absolute;top:auto;bottom:3px;left:15%;right:15%;width:70%;height:9px;background:url('../img/ibara-divider.svg') center/100% auto no-repeat;opacity:.9}
.bottom-nav a.is-current:before{content:'';position:absolute;left:28%;right:28%;top:-1px;height:2px;background:#f0657f;box-shadow:0 0 8px #ef365e}
.bottom-nav a.is-current .nav-ja{margin-bottom:5px}
.gallery{gap:24px;max-width:1280px;margin-inline:auto;padding:0 6% 30px}
.gallery button,.gallery button:nth-child(n){position:relative;transform:none;border:1px solid #9c3c52;border-radius:90px 90px 5px 5px;padding:7px 7px 0;background:linear-gradient(150deg,#2d1420,#100b10);box-shadow:0 0 0 3px #1b0e16,0 10px 25px #0005}
.gallery img{display:block;border:1px solid #61263a;border-radius:82px 82px 2px 2px;width:100%;height:auto;aspect-ratio:3/4;object-fit:cover}
.album-caption{display:block;padding:17px 2px;font-size:10px;letter-spacing:.19em;color:#d6abb5}
#photo-dialog{width:min(92vw,940px);max-height:90svh;padding:54px 18px 16px;background:linear-gradient(145deg,#29121e,#100b10);border:1px solid #b54b62;border-radius:12px;box-shadow:0 0 0 4px #1c0c15,0 20px 80px #000b}
#photo-dialog::backdrop{background:#080408ed}
#photo-dialog #large-photo{display:block;width:100%;height:auto;max-height:65svh;object-fit:contain;border:0}
#photo-dialog #close-photo{position:absolute;top:12px;right:18px;background:transparent;border:1px solid #773047;border-radius:20px;color:#f5dce3;padding:7px 14px}
.album-controls{display:flex;align-items:center;justify-content:center;gap:28px;margin-top:16px}
.album-controls button{width:44px;height:44px;border:1px solid #87344b;border-radius:50%;background:#25101b;color:#f6dbe2;font-size:20px}
.album-count{font-size:12px;letter-spacing:.2em;color:#dcb7c1}
.gallery button:focus-visible,.album-controls button:focus-visible{outline:2px solid #f48398;outline-offset:4px}
@media(max-width:700px){.gallery{gap:22px;padding-inline:7%;padding-top:4px}.gallery button{flex-basis:76%}.album-caption{padding:16px 0}.bottom-nav a.is-current:after{height:7px;bottom:2px}}
@media(prefers-reduced-motion:reduce){.thorn-await::after{clip-path:none}.thorn-await.thorn-arrived,.thorn-await.thorn-arrived::after,.glint-running>.button-glint,.glint-running>.button-glint rect{animation:none}.button-glint{display:none!important}}
