/* renewal.css */
:root{--bg:#140b10;--wine:#761d36;--rose:#d59b9e;--gold:#cdbca0;--text:#f2e9e0;--muted:#b9a6a8;--line:#cdbca02b}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:95px}body{margin:0;background:var(--bg);color:var(--text);font-family:'Yu Mincho','Hiragino Mincho ProN',serif}a{color:inherit;text-decoration:none}button{font:inherit;color:inherit;cursor:pointer}img{max-width:100%;height:auto;display:block}button,a{-webkit-tap-highlight-color:transparent}a:focus-visible,button:focus-visible{outline:2px solid var(--gold);outline-offset:6px}.skip{position:absolute;top:-60px}.skip:focus{top:10px;z-index:100;background:#000;padding:15px}.topbar{position:absolute;z-index:10;top:0;left:0;width:100%;display:flex;align-items:center;justify-content:space-between;padding:22px 5%;border-bottom:1px solid #ffffff20;background:linear-gradient(#100810a8,transparent)}.brand{display:flex;align-items:center;gap:15px}.brand img{width:65px;height:65px;object-fit:contain}.brand span{font-size:22px;letter-spacing:.18em}.brand small{font-size:10px;letter-spacing:.1em;display:block;margin-top:7px}.topbar nav{display:flex;gap:30px;align-items:center;font-size:13px;letter-spacing:.1em}.topbar nav a:hover,.text-link:hover{color:var(--rose)}.nav-recruit{border:1px solid #fff5;padding:12px 20px}.menu-toggle{display:none}.mobile-menu{position:fixed;z-index:30;inset:90px 0 auto;background:#1a0b16fa;padding:25px}.mobile-menu a{display:block;padding:18px;border-bottom:1px solid var(--line)}.hero{height:100svh;min-height:690px;max-height:1100px;position:relative;background:#20131a;overflow:hidden}.hero video,.shade{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}.shade{background:linear-gradient(90deg,#100810b8,transparent 85%),linear-gradient(0deg,#140b10 0%,transparent 40%,#10081033)}.hero-content{position:absolute;left:9%;top:50%;transform:translateY(-35%)}.eyebrow{font-family:Georgia,serif;font-size:10px;letter-spacing:.24em;color:var(--gold);margin:0 0 26px}.hero-small{font-size:14px;letter-spacing:.2em;margin:0 0 24px}.hero h1{font-size:clamp(44px,5.6vw,82px);font-weight:400;letter-spacing:.1em;line-height:1.6;margin:0;text-shadow:0 2px 30px #0005}.hero h1 span{color:#f3d9d3}.hero-sub{letter-spacing:.25em;font-size:13px;margin:24px 0 35px}.hero-links{display:flex;align-items:center;gap:34px}.btn{display:inline-flex;align-items:center;gap:35px;justify-content:space-between;padding:19px 25px;border:1px solid #cdbca077;font-size:12px;letter-spacing:.1em;transition:background .2s}.btn:hover{background:#76203b}.filled{background:#761d36;border-color:#a35f6b}.text-link{display:inline-flex;align-items:center;gap:30px;font-size:12px;letter-spacing:.08em;border-bottom:1px solid #cdbca04a;padding:10px 0}.hero-bottom{position:absolute;bottom:32px;left:5%;right:5%;display:flex;justify-content:space-between;align-items:center;font:11px Georgia,serif;letter-spacing:.15em}.hero-bottom small{display:block;font-size:8px;margin-top:8px;color:var(--muted)}.hero-bottom button{background:none;border:1px solid #fff4;padding:11px 15px;font-size:12px}.hero-bottom button span{font-size:8px;margin-left:8px}.ribbon{display:flex;justify-content:space-around;padding:24px 5%;font-size:11px;letter-spacing:.1em;border-bottom:1px solid var(--line);color:var(--gold)}.section{padding:110px 8%;max-width:1500px;margin:auto}h2{font-size:clamp(27px,3vw,42px);line-height:1.7;font-weight:400;letter-spacing:.1em;margin:0}h3{font-weight:400;font-size:21px}.story{display:grid;grid-template-columns:1.15fr 1fr;gap:10%;align-items:center;background:radial-gradient(ellipse at right,#46142760,transparent 65%)}.story-photo{padding-bottom:30px}.story-photo img{aspect-ratio:4/5;object-fit:cover;object-position:center;border:1px solid var(--line)}.photo-caption{display:block;font:9px Georgia;letter-spacing:.24em;margin-top:20px;color:var(--gold)}.story-copy p:not(.eyebrow){font-size:13px;line-height:2.5;color:#d7c5c6;margin:22px 0}.ornament{font-size:24px;color:var(--rose);margin:20px 0}.section-head{display:flex;align-items:end;justify-content:space-between;gap:25px;margin-bottom:40px}.cast-section{border-top:1px solid var(--line)}.cast-image{display:block;position:relative;border:1px solid var(--line);overflow:hidden;background:#100a0d}.cast-image img{width:100%;transition:transform .8s}.cast-image:hover img{transform:scale(1.025)}.image-link{position:absolute;bottom:0;right:0;background:#340d23e8;padding:20px 25px;letter-spacing:.2em;font-size:10px}.muted{font-size:12px;line-height:2;color:var(--muted)}.system-section{background:linear-gradient(120deg,#220e18,#170c12)}.plans{display:grid;grid-template-columns:1fr 1fr;gap:25px}.plan{padding:37px;border:1px solid var(--line);background:#130c1180;transition:border-color .2s}.plan:hover{border-color:var(--rose)}.accent{background:linear-gradient(135deg,#471326,#25101c);border-color:#b56a7d66}.plan-index{font-size:10px;letter-spacing:.2em;color:var(--gold)}.price{font-size:46px;margin:20px 0;letter-spacing:.03em}.price span{font-size:12px;margin-left:10px;color:var(--muted)}.plan>p:not(.price){font-size:12px;color:var(--muted)}.plan-foot{display:flex;justify-content:space-between;border-top:1px solid var(--line);margin-top:30px;padding-top:22px;font-size:11px}.fine{font:11px/1.9 sans-serif;color:var(--muted);margin-top:20px}.gallery-section{padding-bottom:70px}.gallery-section .section{padding-bottom:0}.gallery{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;padding:0 3%}.gallery button{border:0;padding:0;background:none;overflow:hidden}.gallery img{width:100%;aspect-ratio:3/4;object-fit:cover;transition:transform .5s}.gallery button:hover img{transform:scale(1.04)}.access-section{display:grid;grid-template-columns:1fr 1fr;gap:9%;align-items:center}.access-lead{font-size:14px;color:var(--rose);margin:25px 0}dl{font-size:12px;margin:30px 0}dl>div{display:grid;grid-template-columns:80px 1fr;padding:18px 0;border-bottom:1px solid var(--line);line-height:2}dt{color:var(--muted)}dd{margin:0}.access-photo{position:relative}.access-photo img{aspect-ratio:4/5;object-fit:cover;filter:brightness(.65)}.access-photo>div{position:absolute;bottom:40px;left:35px;font-size:25px;letter-spacing:.2em}.access-photo small{display:block;font-size:10px;margin-top:15px;letter-spacing:.1em}.recruit-section{text-align:center;background:linear-gradient(#140b10bb,#140b10dd),url('../img/haikei2-optimized.webp') center/cover;border-block:1px solid var(--line)}.recruit-section>p:not(.eyebrow){font-size:13px;line-height:2;margin:20px 0 30px}footer{padding:65px 8% 35px}.footer-top{display:flex;justify-content:space-between;align-items:center;padding-bottom:40px}.socials{display:flex;gap:25px;font-size:12px}.footer-bottom{border-top:1px solid var(--line);padding-top:25px;display:flex;justify-content:space-between;gap:20px;font-size:10px;color:var(--muted)}.mobile-dock{display:none}dialog{background:#140b10;color:var(--text);border:1px solid var(--line);max-width:90vw;max-height:90svh;padding:45px 15px 15px}dialog::backdrop{background:#000d}dialog img{max-height:75svh;object-fit:contain;margin:auto}#close-photo{position:absolute;right:15px;top:12px;background:none;border:0;font-size:12px}.js .reveal{opacity:0;transform:translateY(22px);transition:opacity .8s,transform .8s}.js .reveal.visible{opacity:1;transform:none}@media(max-width:700px){html{scroll-padding-top:25px}.topbar{padding:15px 6%}.brand img{width:48px;height:48px}.brand span{font-size:16px}.brand small{font-size:8px}.topbar nav{display:none}.menu-toggle{display:block;background:none;border:1px solid #fff5;padding:11px;font-size:9px;letter-spacing:.12em}.menu-toggle span{margin-left:8px}.hero{min-height:650px;max-height:950px}.hero video{object-position:58% center}.shade{background:linear-gradient(90deg,#100810a0,transparent),linear-gradient(0deg,#140b10,transparent 85%)}.hero-content{left:8%;right:6%;top:48%;transform:translateY(-28%)}.eyebrow{font-size:8px;letter-spacing:.16em}.hero-small{font-size:12px}.hero h1{font-size:40px;line-height:1.75;letter-spacing:.06em}.hero-sub{font-size:11px}.hero-links{gap:20px;align-items:start;flex-direction:column}.btn{padding:17px 20px;font-size:11px}.hero-bottom{bottom:24px;left:8%;right:8%}.hero-bottom>a{display:none}.ribbon{padding:20px 5%;font-size:9px;gap:20px}.ribbon>span:nth-child(2){display:none}.section{padding:70px 7%}.story{grid-template-columns:1fr;gap:25px}.story-photo img{aspect-ratio:4/3}.story-copy{padding-top:10px}.story-copy p:not(.eyebrow){font-size:12px}.section-head{display:block;margin-bottom:25px}.section-head .text-link{margin-top:15px}h2{font-size:28px}.cast-image .image-link{font-size:8px;padding:14px}.plans{grid-template-columns:1fr;gap:16px}.plan{padding:28px}.price{font-size:42px}.gallery{display:flex;overflow-x:auto;scroll-snap-type:x mandatory;padding:0 7% 15px}.gallery button{flex:0 0 75%;scroll-snap-align:center}.gallery-section{padding-bottom:10px}.access-section{grid-template-columns:1fr;gap:40px}.access-photo img{aspect-ratio:4/3}.footer-top{display:block}.socials{margin-top:30px}.footer-bottom{flex-direction:column;line-height:1.8}footer{padding-bottom:100px}.mobile-dock{position:fixed;z-index:20;bottom:0;left:0;right:0;display:grid;grid-template-columns:repeat(3,1fr);background:#230e1bf5;backdrop-filter:blur(15px);border-top:1px solid #b98b9555;padding-bottom:env(safe-area-inset-bottom)}.mobile-dock a{padding:19px 5px;text-align:center;font-size:11px;border-right:1px solid var(--line)}.mobile-dock a:last-child{background:#761d36}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.js .reveal{opacity:1;transform:none;transition:none}*{transition:none!important}}

/* dark-pop.css */
/* Dreamy rose cafe theme */
:root{--bg:#110d10;--wine:#d51f39;--rose:#ed344e;--gold:#ee6776;--text:#fff0ed;--muted:#c5a5aa;--line:#c52d4655}body{font-family:'Hiragino Maru Gothic ProN','Yu Gothic',sans-serif;background:#110d10;background-image:radial-gradient(#b7253e22 .8px,transparent .8px);background-size:16px 16px}h1,h2,h3{font-family:'Hiragino Maru Gothic ProN','Yu Gothic',sans-serif;font-weight:700;letter-spacing:.05em}h2{font-size:clamp(25px,2.7vw,36px)}.eyebrow{font-family:Georgia,serif;color:#bd6285;letter-spacing:.18em}.topbar{background:linear-gradient(#4a1a39bd,transparent);border-color:#ffd1e850;color:#fff0ec}.brand span{font-family:Georgia,serif}.topbar nav{gap:18px}.topbar nav>a{padding:11px 17px;border-radius:30px;background:#fff1f718;border:1px solid #ffd0e433;transition:background .2s,transform .2s}.topbar nav>a:hover{background:#c42b3b;color:#fff5ef;transform:translateY(-2px)}.nav-recruit{background:#c91f35!important;border:1px solid #f15a69!important}.hero{color:#24131d}.shade{background:linear-gradient(90deg,#300710c4,transparent 90%),linear-gradient(0deg,#1c070ed9,transparent 65%)}.hero .eyebrow{color:#ffc0ba}.hero-small{display:inline-block;background:#250d16cc;border:1px solid #d54351aa;border-radius:40px;padding:10px 21px;font-size:12px;letter-spacing:.12em}.hero-small::before{content:'';margin-right:9px;color:#ee3f53}.hero h1{font-size:clamp(40px,4.6vw,66px);line-height:1.65;text-shadow:0 3px 20px #46112b80;letter-spacing:.07em}.hero h1 span{color:#fff0e9}.hero-sub{font-size:13px;letter-spacing:.12em}.btn{position:relative;border-radius:50px;border:1px solid #ed5264;background:#21141c;color:#fff0e9;padding:18px 28px;box-shadow:0 5px 0 #740d22,0 8px 20px #e32b4233;font-weight:700;transition:transform .2s,box-shadow .2s,background .2s}.btn::before{content:'';font-size:18px;line-height:1}.btn:hover{background:#401321;color:#fff5ef;transform:translateY(-3px);box-shadow:0 8px 0 #740d22,0 12px 24px #e32b4233}.filled{background:linear-gradient(120deg,#eb3446,#b8112b);color:white;border:2px solid #f8737d;box-shadow:0 5px 0 #650b1c,0 9px 22px #08030688}.filled:hover{background:#f33d51;color:#fff;box-shadow:0 8px 0 #650b1c}.text-link{border:1px solid #8d3042;border-radius:30px;background:#24131d;padding:12px 20px;color:#ffbcc1;font-weight:600;font-size:11px;box-shadow:0 3px 0 #500e20}.hero .text-link{background:#21101fed;color:#fff0ee;border-color:#ca4258}.hero-bottom{color:#fff0ed}.hero-bottom small{color:#ffc6bf}.hero-bottom button{border-radius:30px;border-color:#dd5165;background:#140a1099}.ribbon{background:#290e1b;border-bottom:2px dashed #791a32;color:#ffc0c0}.story{background:radial-gradient(ellipse at right,#6f102b44,transparent 65%)}.story-photo{position:relative;transform:rotate(-2deg);padding:14px 14px 24px;background:#fff;border:1px solid #8d2840;border-radius:24px;box-shadow:0 12px 30px #0008}.story-photo img{border-radius:14px}.story-photo::before{content:'';position:absolute;z-index:1;top:-24px;left:calc(50% - 35px);font:56px Georgia,serif;color:#db1835;line-height:1;text-shadow:0 2px #fff}.photo-caption{text-align:center;font-size:9px}.story-copy p:not(.eyebrow){color:#dcc0c5;line-height:2.4}.ornament{color:#df2945}.cast-section{border-top:2px dashed #8b2840}.cast-image{border:8px solid #fff;border-radius:25px;box-shadow:0 8px 24px #0005;outline:1px solid #93273e}.image-link{background:#b71530;color:#fff;border-radius:24px 0 0 0;font-weight:700}.system-section{background:#1d1019;border-radius:40px;border:1px solid #70233a;margin-top:25px}.plans{gap:25px}.plan{position:relative;border-radius:26px;border:2px solid #9b3048;background:#21151e;box-shadow:0 7px 0 #500d23}.plan::before{content:'';position:absolute;right:28px;top:20px;color:#cb2440;font-size:35px}.plan.accent{background:linear-gradient(135deg,#24131d,#4a1027);border-color:#b32c45}.plan:hover{border-color:#f04b60}.price{color:#ff5367;font-weight:700}.price span{color:#ceb1ba}.plan-index{color:#e57380}.plan-foot{color:#ffc7cb;border-top:1px dashed #6d263e}.gallery button{border-radius:23px;border:7px solid white;box-shadow:0 5px 15px #0005}.gallery button:nth-child(2n){transform:rotate(2deg)}.gallery button:nth-child(2n+1){transform:rotate(-2deg)}.access-lead{color:#f36a7b}.access-photo{padding:10px;background:white;border:1px solid #85273e;border-radius:28px;box-shadow:0 10px 25px #0008}.access-photo img{border-radius:20px;filter:brightness(.85)}.access-photo>div{color:white;font-family:Georgia,serif;text-shadow:0 2px 6px #301326}.access-photo small{font-family:sans-serif}.recruit-section{position:relative;background:linear-gradient(#180b15e8,#390d22eb),url('../img/haikei2-optimized.webp') center/cover;border:2px dashed #a12c47;border-radius:36px;max-width:1200px;margin-bottom:40px}.recruit-section::before{content:'';display:block;color:#ef3550;font:50px Georgia;margin-bottom:20px}.recruit-section>p:not(.eyebrow){color:#d4acb9}footer{background:#190c17;border-top:1px dashed #80243e}.socials a{border:1px solid #843047;background:#291320;border-radius:25px;padding:12px 18px;font-size:11px}.footer-bottom{border-color:#6e233a}.mobile-menu{background:#1c101bfa;color:#ffd7dd;border-bottom:2px solid #80314b}.mobile-menu a{border-color:#80314b}.menu-toggle{border-radius:25px;background:#2d1222;color:#ffc6ce;border-color:#a63a50}dialog{background:#20101b;border:4px solid #a02e48;border-radius:25px;color:#ffbbc4}dialog img{border-radius:12px}.mobile-dock{background:#170c16f5;border-color:#a3374f;padding:8px 8px calc(8px + env(safe-area-inset-bottom));gap:7px}.mobile-dock a{background:#fff;border:1px solid #8d2f48;border-radius:25px;color:#ffe5e9;padding:14px 3px;box-shadow:0 3px 0 #520d22;font-weight:700}.mobile-dock a:last-child{background:linear-gradient(120deg,#ed344d,#b51733);color:#fff;border-color:#d84961}.mobile-dock a::before{content:'';margin-right:4px}.fine{color:#c5a5aa}@media(max-width:700px){.hero h1{font-size:36px}.hero-small{font-size:10px;padding:9px 15px}.hero-links{gap:20px}.hero .text-link{padding:12px 20px}.btn{padding:16px 22px;font-size:11px}.story-photo{margin-top:18px}.section{padding-top:65px;padding-bottom:65px}.system-section{margin-left:12px;margin-right:12px;border-radius:28px}.plan{padding:28px 23px}.price{font-size:38px}.recruit-section{margin:15px 14px 35px;border-radius:28px}.socials{gap:9px}.socials a{padding:11px 12px}.gallery button{flex-basis:78%}.mobile-menu{inset:85px 0 auto}.hero .hero-sub{font-size:11px}.image-link{font-size:8px}}

/* Rose seals, lacquer buttons and dark pop details. */
.topbar nav>a{border-width:1px;box-shadow:0 3px 0 #350b19}.btn,.plan,.text-link,.socials a{border-width:2px}.btn{box-shadow:0 5px 0 #650c24,0 0 0 3px #160a13}.filled{background:linear-gradient(135deg,#ec3448,#ad0b2b);border-color:#ff8b96;box-shadow:0 6px 0 #5d0a21,0 0 22px #e6274033}.filled:hover{background:#ef344d}.btn::before,.hero-small::before,.mobile-dock a::before{content:'';display:inline-block;flex:none;width:25px;height:25px;background:url('../img/rose-mark.svg') center/contain no-repeat;vertical-align:middle}.hero-small::before{width:19px;height:19px;margin-right:8px}.hero-small{display:inline-flex;align-items:center}.plan::before{content:'';width:43px;height:43px;background:url('../img/rose-mark.svg') center/contain no-repeat}.story-photo{background:#24121d;border:2px solid #a32c48;box-shadow:7px 9px 0 #5a1028}.story-photo::before{content:'';width:66px;height:66px;background:url('../img/rose-mark.svg') center/contain no-repeat;top:-33px;left:calc(50% - 33px)}.story-photo img{border-color:#872a41}.photo-caption{color:#ff9ea9}.hero h1{color:#fff2ed;text-shadow:3px 3px 0 #650f2f,0 3px 25px #08000599}.ribbon{background:repeating-linear-gradient(135deg,#290e1a,#290e1a 14px,#310f1d 14px,#310f1d 28px)}.section-head h2::after{content:' ✦';color:#db2d4b}.recruit-section::before{width:65px;height:65px;background:url('../img/rose-mark.svg') center/contain no-repeat;margin:0 auto 20px}.gallery button{border-color:#591126}.access-photo{background:#260e1d}.access-photo img{filter:brightness(.82)}.image-link{border-top:2px solid #f17385;border-left:2px solid #f17385}.plan{background:radial-gradient(ellipse at top right,#6b112c55,transparent 65%),#21121e}.plan.accent{background:linear-gradient(135deg,#3b1228,#68112c);border-color:#e44460}.plan:hover{transform:translateY(-3px)}.mobile-dock a{background:#29101f;color:#ffe6ec}.mobile-dock a:last-child{background:linear-gradient(135deg,#e83049,#ad0c2c)}.mobile-dock a::before{width:18px;height:18px;margin-right:3px}.ornament{color:#e33451}.socials a{color:#ffd1da}.recruit-section{border-color:#c63c57}.footer-top .brand{color:#fff0ed}@media(max-width:700px){.btn::before{width:23px;height:23px}.mobile-dock a{display:flex;align-items:center;justify-content:center;font-size:10px}.story-photo::before{width:56px;height:56px;top:-28px;left:calc(50% - 28px)}}
.hero{color:#fff0ed}.hero-small,.hero-sub{color:#fff0ed}.hero .eyebrow{color:#ffbfc4}.hero .text-link{color:#fff0ed}.hero h1 span{color:#fff0ed}
.story-copy{text-align:center}
/* Thorn-framed Japanese title, retained as accessible live text. */
.hero h1{position:relative;width:fit-content;max-width:100%;font-family:'Yu Mincho','Hiragino Mincho ProN','Hiragino Mincho Pro','Noto Serif JP',serif;font-weight:500;letter-spacing:.1em;line-height:1.65;padding:10px 18px 30px 0;text-shadow:1px 2px 0 #5f1028,0 0 24px #16040be6}
.hero h1::after{content:'';position:absolute;pointer-events:none;left:-26px;right:-18px;bottom:-16px;height:95px;background:url('../img/thorn-title.svg') center bottom/100% 100% no-repeat;opacity:.95}
.hero h1 span{color:#ffebe6}.hero-sub{margin-top:34px}
@media(max-width:700px){.hero h1{font-size:36px;padding-right:8px;padding-bottom:23px;letter-spacing:.07em}.hero h1::after{left:-13px;right:-7px;height:65px;bottom:-12px}.hero-sub{margin-top:29px}}
/* Keep the hero copy together after removing its action buttons. */
.hero{height:88svh;min-height:620px;max-height:900px}
.hero-content{top:51%;transform:translateY(-38%)}
.hero-content>.eyebrow{margin-bottom:16px}
.hero-small{margin:0 0 15px}
.hero h1{line-height:1.45;padding-top:3px;padding-bottom:22px}
.hero h1::after{height:78px;bottom:-17px}
.hero-sub{margin:28px 0 0;line-height:1.8}
@media(max-width:700px){.hero{height:80svh;min-height:540px;max-height:740px}.hero-content{top:50%;transform:translateY(-30%);left:8%;right:7%}.hero-content>.eyebrow{margin-bottom:14px;font-size:8px;letter-spacing:.12em}.hero-small{padding:8px 14px;margin-bottom:15px}.hero h1{font-size:clamp(30px,8.6vw,38px);line-height:1.43;padding-top:2px;padding-bottom:20px}.hero h1::after{height:58px;bottom:-13px;left:-10px;right:-5px}.hero-sub{margin:24px 0 0;font-size:11px;letter-spacing:.08em}.hero-bottom{top:93px}.ribbon{padding-block:17px}}
/* Match the concept heading to the thorn-framed hero title. */
.story-copy h2{position:relative;width:fit-content;max-width:100%;margin-inline:auto;padding:0 12px 27px;font-family:'Yu Mincho','Hiragino Mincho ProN','Hiragino Mincho Pro','Noto Serif JP',serif;font-weight:500;letter-spacing:.1em;line-height:1.6;color:#fff0ed;text-shadow:1px 2px 0 #65102d,0 0 18px #8b153333}
.story-copy h2::after{content:'';position:absolute;pointer-events:none;left:-12px;right:-12px;bottom:-14px;height:65px;background:url('../img/thorn-title.svg') center bottom/100% 100% no-repeat}
.story-copy .ornament{margin:22px 0 14px}
@media(max-width:700px){.story-copy h2{font-size:28px;letter-spacing:.07em;padding-inline:8px;padding-bottom:24px}.story-copy h2::after{left:-9px;right:-9px;height:55px;bottom:-12px}}
.cast-list-action{text-align:center;margin-top:30px}.cast-list-action .btn{min-width:220px;justify-content:space-between}.cast-list-action .btn span{margin-left:20px}@media(max-width:700px){.cast-list-action{margin-top:25px}.cast-list-action .btn{min-width:210px}}

/* pages.css */
.topbar{position:relative;background:#1c0d17;border-bottom:1px solid #8e2942}.page-banner{position:relative;text-align:center;padding:65px 20px 50px;background:radial-gradient(ellipse at center,#5b102b88,transparent 70%);border-bottom:2px dashed #80223b}.page-banner>p{letter-spacing:.3em;color:#f47b8a;font:12px Georgia}.page-banner>img{width:55px;height:55px;margin:18px auto}.page-banner h1{font-size:clamp(26px,4vw,42px);margin:20px 0 25px}.page-banner>a,.page-banner>span{font-size:10px;color:#d5a9b5}.page-content{max-width:1200px;margin:auto;padding:65px 7% 90px}.page-content img{height:auto}.page-content a:focus-visible{outline:2px solid #ff8d9e}.page-content ul{padding:0;list-style:none}.cast-list>ul{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:30px}.cast-list li{position:relative;background:linear-gradient(150deg,#3a1426,#1f111b);border:2px solid #8f2944;border-radius:24px;padding:18px;box-shadow:0 7px 0 #480d21;overflow:hidden;transition:transform .2s}.cast-list li:hover{transform:translateY(-4px)}.cast-list li>span{display:flex;gap:9px;align-items:center;font-weight:700;font-size:16px;margin-bottom:16px}.cast-list li>span:before{content:'';width:25px;height:25px;background:url('../img/rose-mark.svg') center/contain no-repeat;flex:none}.cast-list li>img{width:100%;aspect-ratio:3/4;object-fit:cover;border-radius:15px}.sns-icons{display:flex;justify-content:center;gap:13px;margin-top:18px}.sns-icons a{display:flex;align-items:center;justify-content:center;background:#500e26;border:1px solid #ae354f;border-radius:50%;width:37px;height:37px;color:#ffced7}.sns-icons svg{width:16px;height:16px}#system{display:grid;grid-template-columns:1fr 1fr;gap:25px;align-items:start}table{width:100%;border-collapse:separate;border-spacing:0;overflow:hidden;background:#25131f;border:1px solid #8c2c44;border-radius:18px;font-size:13px}caption{font-size:19px;text-align:left;font-weight:700;margin-bottom:16px;color:#ffb8c6}th,td{text-align:left;padding:17px 18px;line-height:1.8;border-bottom:1px solid #672238;font-weight:400}td{color:#ffb7c4}tr:last-child th,tr:last-child td{border-bottom:0}#system>p{font-size:12px;line-height:1.9;margin:0;color:#d9aab9}#systemmenu{margin-top:70px}.title-h2{text-align:center;margin-bottom:25px}.tab{display:flex;flex-wrap:wrap;justify-content:center;gap:10px;margin-bottom:30px!important}.tab a{display:block;border:1px solid #a63550;border-radius:30px;background:#321222;padding:13px 18px;font-size:12px;box-shadow:0 4px 0 #510d24}.tab a[aria-selected="true"]{background:#c61f3d;color:white;border-color:#fc788c}.area[hidden]{display:none}.area{padding:25px;background:#1b1018;border:1px solid #622239;border-radius:25px}.area table{margin:20px 0}.system_icon{max-width:75px;max-height:85px;object-fit:contain;margin:0 auto 25px}.area p{font-size:12px;line-height:2;color:#d9aab9}.map-access{height:430px;overflow:hidden;border:2px solid #ac3552;border-radius:25px;background:#26131f}.map-access iframe{width:100%;height:100%;border:0}.access-page{margin:30px 0;padding:30px;line-height:2.4;border:1px solid #78233c;border-radius:22px;background:#25121e;font-size:14px}.page-recruit .home-concept-image>img{max-height:520px;width:100%;object-fit:cover;border:3px solid #9c2e49;border-radius:25px}.page-recruit .title-recruit{font-size:24px;font-weight:700}.page-recruit .traffic{font-size:16px;line-height:2}.page-recruit .home-concept-text{line-height:2.3;font-size:14px;text-align:center;padding:25px}.page-recruit .cmn-section-body>p{text-align:center;line-height:2}.slider{display:flex;overflow-x:auto;gap:20px;scroll-snap-type:x mandatory;padding-bottom:15px;margin:30px 0}.slider img{flex:0 0 80%;width:80%;min-width:0;max-width:80%;aspect-ratio:1 / 1;object-fit:cover;scroll-snap-align:center;border-radius:20px}.lineBtn img{max-width:350px;margin:30px auto}.three_title img,.support_title img,.recruit_title img{max-width:100%;margin:40px auto}.miryoku{display:grid;grid-template-columns:1fr 1fr;gap:24px}.beauty-box1,.beauty-box2{background:#2c1423;border:1px solid #912e4a;border-radius:25px;padding:28px;text-align:center}.beauty-box1 img,.beauty-box2 img{height:140px;width:140px;object-fit:contain;margin:25px auto}.hukuri_sub{font-size:11px;letter-spacing:.1em;color:#ef879c}.hukuri_title{font-size:21px;font-weight:700;color:#ffd7df}.naiyou{font-size:13px;line-height:2.2}.page-recruit .lineBtn a{display:block}.page-recruit .footer{display:none}.page-recruit .home-concept-image-d,.page-recruit .home-concept-image-b{display:none}.page-content svg{max-width:100%}@media(max-width:700px){.page-banner{padding:35px 15px}.page-banner>img{width:42px;height:42px}.page-content{padding:38px 5% 65px}.cast-list>ul{grid-template-columns:repeat(2,minmax(0,1fr));gap:19px 12px}.cast-list li{padding:10px;border-radius:18px}.cast-list li>span{font-size:12px;gap:5px}.cast-list li>span:before{width:20px;height:20px}.sns-icons{gap:7px}.sns-icons a{height:29px;width:29px}.sns-icons svg{width:13px;height:13px}#system{grid-template-columns:1fr;gap:20px}th,td{padding:12px 10px;font-size:12px}.tab{gap:8px}.tab a{padding:11px 12px;font-size:10px}.area{padding:15px 10px}.map-access{height:330px}.access-page{padding:20px;font-size:12px;overflow-wrap:anywhere}.miryoku{grid-template-columns:1fr}.page-recruit .home-concept-text{padding:15px 2px;font-size:12px}.page-recruit .title-recruit{font-size:19px}.slider img{flex-basis:90%;max-width:90%}.mobile-menu{top:85px}}
#system{display:block;max-width:850px;margin:auto}#system table{margin:30px 0 12px}#system p{margin:0 0 24px}#system>div{margin-top:25px}.page-recruit .lineBtn a{max-width:350px;margin:30px auto}.page-recruit .lineBtn a:after{content:'募集についてLINEで相談する ↗';display:block;text-align:center;font-size:12px;color:#ffd6df;border:1px solid #c13c59;border-radius:25px;padding:14px;background:#5e122b}.page-recruit .lineBtn img{margin-bottom:15px}

/* Costume collection heading */
.page-recruit .costume-heading{text-align:center;padding:28px 12px 0;color:#e5c58e;font-family:"Yu Mincho","Hiragino Mincho ProN","Noto Serif JP",serif;}
.page-recruit .costume-store{margin:0 0 14px;font-size:clamp(12px,2.1vw,18px);letter-spacing:.16em;line-height:1.8;color:#d7b985;}
.page-recruit .costume-heading h2{margin:0;font:inherit;font-size:clamp(26px,4.4vw,40px);letter-spacing:.24em;text-indent:.24em;line-height:1.5;color:#f3e0bc;text-shadow:0 2px 18px #c9994930;}
.page-recruit .costume-heading-ornament{display:flex;align-items:center;justify-content:center;gap:18px;max-width:250px;margin:15px auto 0;font-size:13px;color:#c5a06a;}
.page-recruit .costume-heading-ornament::before,.page-recruit .costume-heading-ornament::after{content:"";height:1px;flex:1;background:linear-gradient(90deg,transparent,#b38a54);}
.page-recruit .costume-heading-ornament::after{transform:rotate(180deg);}

.page-recruit .benefits-heading{padding-top:24px;margin-bottom:36px;}
.page-recruit .benefits-heading h2{font-size:clamp(23px,3.8vw,36px);letter-spacing:.1em;text-indent:0;}
.page-recruit .benefits-count{display:inline-block;margin:0 .08em;font-size:1.4em;font-style:italic;color:#d8b370;}

/* Six benefit cards, two columns on every screen size. */
.page-recruit .miryoku{grid-template-columns:repeat(2,minmax(0,1fr));align-items:stretch;}
.page-recruit .miryoku>div{min-width:0;overflow-wrap:anywhere;}
@media(max-width:700px){
.page-recruit .miryoku{gap:16px 10px;}
.page-recruit .miryoku .beauty-box1,.page-recruit .miryoku .beauty-box2{padding:18px 10px;border-radius:18px;}
.page-recruit .miryoku .hukuri_sub{font-size:10px;letter-spacing:0;}
.page-recruit .miryoku .hukuri_title{font-size:16px;line-height:1.6;}
.page-recruit .miryoku .naiyou{font-size:11px;line-height:1.9;}
.page-recruit .miryoku img{width:100px;height:100px;max-width:100%;margin:18px auto;}
}

/* Coordinated YUMEMORI benefit illustrations. */
.page-recruit .miryoku .beauty-box1 img,.page-recruit .miryoku .beauty-box2 img{display:block;width:100%;max-width:320px;height:auto;aspect-ratio:1;object-fit:cover;margin:20px auto;border-radius:14px;border:1px solid #b18c4d66;box-shadow:0 8px 24px #0005;}
@media(max-width:700px){.page-recruit .miryoku .beauty-box1 img,.page-recruit .miryoku .beauty-box2 img{margin:14px auto;border-radius:10px;}}

/* bottom-nav.css */
body{padding-bottom:calc(98px + env(safe-area-inset-bottom))}.bottom-nav{position:fixed;z-index:40;bottom:0;left:0;right:0;display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:8px;padding:10px max(18px,calc((100vw - 850px)/2)) calc(10px + env(safe-area-inset-bottom));background:linear-gradient(180deg,#220e1bf5,#120a11fa);border-top:2px solid #a62b45;box-shadow:0 -7px 25px #07020666;backdrop-filter:blur(18px)}.bottom-nav:before{content:'';position:absolute;left:0;right:0;top:3px;border-top:1px dashed #ad314944;pointer-events:none}.bottom-nav a{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:5px;min-height:70px;border-radius:18px;color:#e6bbc5;border:1px solid transparent;transition:background .2s,transform .2s}.bottom-nav svg{height:24px;width:24px;flex:none}.nav-en{font:11px Georgia,serif;letter-spacing:.08em}.nav-ja{font-size:9px;line-height:1.2;white-space:nowrap}.bottom-nav a:hover{background:#59152e;color:#fff1ef;transform:translateY(-2px)}.bottom-nav a[aria-current="page"]{background:linear-gradient(145deg,#a71c37,#540c25);border-color:#e65d75;color:#fff0ed;box-shadow:0 3px 0 #3a0717,inset 0 1px 0 #ff9da744}.bottom-nav a[aria-current="page"]:after{content:'';position:absolute;right:5px;top:3px;width:16px;height:16px;background:url('../img/rose-mark.svg') center/contain no-repeat}.bottom-nav a:focus-visible{outline:2px solid #ff98a7;outline-offset:2px}footer{padding-bottom:35px}@media(max-width:700px){body{padding-bottom:calc(89px + env(safe-area-inset-bottom))}.bottom-nav{padding:8px 5px calc(8px + env(safe-area-inset-bottom));gap:3px}.bottom-nav a{min-height:69px;gap:5px;border-radius:14px}.bottom-nav svg{width:23px;height:23px}.nav-en{font-size:9px;letter-spacing:.04em}.nav-ja{font-size:9px}.bottom-nav a[aria-current="page"]:after{width:13px;height:13px;right:2px;top:3px}.bottom-nav a:hover{transform:none}footer{padding-bottom:30px}}@media(prefers-reduced-motion:reduce){.bottom-nav a{transition:none}}
.hero-bottom{bottom:115px}@media(max-width:700px){.hero-bottom{top:105px;bottom:auto;left:auto;right:7%}.hero-bottom>span,.hero-bottom>a{display:none}.hero-bottom button{padding:9px 12px}}
/* Page navigation is available in the fixed bottom menu. */
.menu-toggle,#mobile-menu{display:none!important}
/* Center the masthead consistently on every page. */
.topbar{justify-content:center;flex-direction:column;gap:18px;text-align:center}
.topbar>.brand{justify-content:center}
.topbar>nav{justify-content:center}
@media(max-width:700px){.topbar{gap:0}.topbar>.brand{margin-inline:auto}}
/* Center the wordmark itself; keep the emblem outside its layout box. */
.topbar>.brand{position:relative;display:block;width:max-content;margin-inline:auto;min-height:65px;align-content:center}
.topbar>.brand>span{display:block;text-align:center}
.topbar>.brand>img{position:absolute;right:calc(100% + 15px);top:50%;transform:translateY(-50%);margin:0}
@media(max-width:700px){.topbar>.brand{min-height:48px}.topbar>.brand>img{right:calc(100% + 12px)}}

/* socials.css */
footer .socials{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;width:min(100%,590px)}
footer .socials>a{position:relative;isolation:isolate;display:flex;align-items:center;gap:13px;min-width:0;padding:18px 15px;background:linear-gradient(145deg,#28151f,#100d11);border:1px solid #732339;border-radius:9px;box-shadow:none;color:#f8e5e8;text-decoration:none;transition:border-color .2s,background .2s,transform .2s;pointer-events:auto;touch-action:manipulation;-webkit-tap-highlight-color:#c8284544}
footer .socials>a:before{content:'';position:absolute;left:14px;right:14px;bottom:0;height:2px;background:linear-gradient(90deg,#db2446,transparent);pointer-events:none}
footer .socials>a:hover{background:linear-gradient(145deg,#421426,#1e0c17);border-color:#df4963;transform:translateY(-2px)}
footer .socials svg{width:23px;height:23px;flex:none;color:#ed5972;pointer-events:none}.social-label{font:13px/1.3 sans-serif;font-weight:600;min-width:0;pointer-events:none}.social-label small{display:block;font:8px/1.5 sans-serif;font-weight:400;color:#b98c99;margin-top:6px;white-space:nowrap}.social-arrow{margin-left:auto;color:#a57585;font-size:14px;pointer-events:none}
@media(max-width:900px){footer .footer-top{flex-direction:column;align-items:flex-start;gap:28px}footer .socials{width:100%;margin-top:0}}@media(max-width:700px){footer .socials{gap:8px}footer .socials>a{padding:16px 8px;min-height:90px;flex-direction:column;justify-content:center;gap:8px;border-radius:8px}footer .socials svg{width:23px;height:23px}.social-label{text-align:center;font-size:11px}.social-label small{font-size:7px;letter-spacing:-.15px;margin-top:4px}.social-arrow{position:absolute;right:7px;top:7px;font-size:11px}footer .socials>a:before{left:8px;right:8px}}

/* thorn-headings.css */
/* Shared thorn typography for titles across the entire site. */
h1,h2,h3,caption,.hukuri_title,.title-recruit{font-family:'Yu Mincho','Hiragino Mincho ProN','Hiragino Mincho Pro','Noto Serif JP',serif;font-weight:500;letter-spacing:.08em;color:#fff0ed;text-shadow:1px 2px 0 #65102d}
.section-head h2,.recruit-section h2,.page-banner h1,.title-h2{position:relative;width:fit-content;max-width:100%;padding-bottom:29px;line-height:1.6}
.section-head h2::after,.recruit-section h2::after,.page-banner h1::after,.title-h2::after{content:'';position:absolute;left:-10px;right:-10px;bottom:-11px;height:58px;background:url('../img/thorn-title.svg') center bottom/100% 100% no-repeat;pointer-events:none}
.page-banner h1,.recruit-section h2,.title-h2{margin-inline:auto}
.section-head{margin-bottom:48px}
.access-section h2{position:relative;width:fit-content;padding-bottom:27px}
.access-section h2::after{content:'';position:absolute;left:-10px;right:-10px;bottom:-10px;height:54px;background:url('../img/thorn-title.svg') center bottom/100% 100% no-repeat;pointer-events:none}
.plan h3{font-size:23px;line-height:1.7;padding-bottom:9px;border-bottom:1px solid #a82f4b66}
.page-content caption{padding:8px 0 13px 34px;background:url('../img/rose-mark.svg') left 8px/25px 25px no-repeat;line-height:1.6}
.page-content .hukuri_title{font-size:23px;line-height:1.7;margin:14px 0 20px;padding-bottom:12px;border-bottom:1px solid #aa315366}
.page-banner{padding-bottom:56px}
@media(max-width:700px){.section-head h2,.recruit-section h2,.page-banner h1,.title-h2{padding-bottom:25px;letter-spacing:.06em}.section-head h2::after,.recruit-section h2::after,.page-banner h1::after,.title-h2::after{height:49px;left:-6px;right:-6px;bottom:-10px}.section-head{margin-bottom:38px}.page-banner{padding-bottom:40px}.page-content caption{font-size:18px}.plan h3{font-size:21px}.page-content .hukuri_title{font-size:21px}}
/* Center every title and its thorn decoration. */
h1,h2,h3,caption,.hukuri_title,.title-recruit{text-align:center}
.hero-content{left:8%;right:8%;text-align:center}
.hero h1,.story-copy h2,.section-head h2,.access-section h2,.recruit-section h2,.page-banner h1,.title-h2{margin-left:auto;margin-right:auto}
.section-head{display:block;text-align:center}
.section-head>.text-link{margin-top:20px}
.section-head>.muted{margin-top:20px}
.access-section .eyebrow{text-align:center}
.plan h3{text-align:center}
.page-content caption{padding:12px 10px 15px;background:none;text-align:center}
@media(max-width:700px){.hero-content{left:7%;right:7%;text-align:center}.section-head{display:block;text-align:center}}
/* Keep the original left-aligned hero copy. */
.hero-content{left:9%;right:auto;text-align:left}.hero h1{margin-left:0;margin-right:0;text-align:left}.hero-sub{text-align:left}
@media(max-width:700px){.hero-content{left:8%;right:7%;text-align:left}.hero h1{margin-left:0;margin-right:0;text-align:left}}
/* Consistent numbered section labels. */
.section .eyebrow{font-family:Georgia,serif;font-size:12px;font-weight:400;line-height:1.6;letter-spacing:.2em;margin-bottom:22px;text-align:center}
@media(max-width:700px){.section .eyebrow{font-size:12px;line-height:1.6;letter-spacing:.2em;margin-bottom:22px}}

/* enchanted.css */
/* Illustrated thorn letterforms, rose atmosphere and portrait frames. */
.title-art .thorn-lettering{width:100%;height:auto;display:block;overflow:visible}.title-art{width:fit-content;max-width:100%;margin-inline:auto}.hero h1.title-art{width:min(100%,510px);margin-left:0;padding:0 0 9px}.hero h1.title-art:after,.story-copy h2.title-art:after,.section-head h2.title-art:after,.access-section h2.title-art:after,.recruit-section h2.title-art:after,.page-banner h1.title-art:after,.title-h2.title-art:after{display:none}.story-copy h2.title-art{width:min(100%,370px);padding:0}.section-head h2.title-art,.recruit-section h2.title-art,.access-section h2.title-art{width:min(100%,530px);padding:0}.page-banner h1.title-art{width:min(100%,520px);padding:0}.title-h2.title-art{width:170px;padding:0}.hero-sub{margin-top:18px}.rose-atmosphere{position:fixed;inset:0;z-index:2;pointer-events:none;overflow:hidden;background:radial-gradient(ellipse at 98% 25%,#c6243c0c,transparent 42%),radial-gradient(ellipse at 5% 80%,#e0273609,transparent 40%)}.rose-atmosphere i{position:absolute;top:-35px;left:9%;width:10px;height:17px;border-radius:2px 90% 8px 90%;background:linear-gradient(135deg,#e43d55,#670b24);opacity:0;animation:petal-fall 22s linear infinite;filter:drop-shadow(0 0 4px #a20e3240)}.rose-atmosphere i:nth-child(2){left:27%;animation-delay:-7s;animation-duration:28s;width:7px;height:12px}.rose-atmosphere i:nth-child(3){left:48%;animation-delay:-16s;animation-duration:26s}.rose-atmosphere i:nth-child(4){left:68%;animation-delay:-3s;animation-duration:31s;width:8px;height:13px}.rose-atmosphere i:nth-child(5){left:83%;animation-delay:-14s;animation-duration:24s}.rose-atmosphere i:nth-child(6){left:95%;animation-delay:-20s;animation-duration:30s;width:6px;height:10px}@keyframes petal-fall{0%{transform:translate3d(0,-30px,0) rotate(0deg);opacity:0}12%{opacity:.4}85%{opacity:.28}100%{transform:translate3d(-55px,110vh,0) rotate(390deg);opacity:0}}.ribbon,.cast-section,.page-banner,footer,.recruit-section{position:relative;border-block-color:transparent}.ribbon:after,.cast-section:before,.page-banner:after,footer:before,.recruit-section:before{content:'';position:absolute;top:0;left:0;right:0;height:35px;background:url('../img/thorn-lace.svg') center top/240px 40px repeat-x;pointer-events:none;opacity:.75}.ribbon:after,.page-banner:after{top:auto;bottom:-29px;z-index:1}.cast-section{padding-top:90px}.recruit-section:before{width:auto;margin:0;display:block}.cast-list>ul{gap:35px 28px}.cast-list li{padding:17px 17px 21px;border:1px solid #9e3048;border-radius:110px 110px 18px 18px;background:linear-gradient(120deg,#481729,#130c13 45%,#3c1126);box-shadow:0 7px 0 #390c1d,0 13px 35px #0007;overflow:visible}.portrait-open{position:relative;display:block;width:100%;padding:6px;background:#0e090e;border:2px solid #b65064;border-radius:100px 100px 10px 10px;box-shadow:0 0 0 3px #270c19,0 0 0 4px #7d2339,inset 0 0 18px #000;overflow:hidden;cursor:pointer}.portrait-open:after{content:'';position:absolute;inset:0;box-shadow:inset 0 0 25px #17050d66;border-radius:inherit;pointer-events:none}.portrait-open img{width:100%;aspect-ratio:3/4;object-fit:cover;border-radius:95px 95px 5px 5px;transition:transform .6s}.portrait-open:hover img{transform:scale(1.045)}.cast-list li:before,.cast-list li:after{content:none;display:none}.cast-list li:before{left:-9px;transform:rotate(-18deg)}.cast-list li:after{right:-9px;transform:rotate(18deg)}.cast-list li>.portrait-name{justify-content:center;text-align:center;margin:20px 0 13px;padding:11px 5px;font-family:'Yu Mincho','Hiragino Mincho ProN',serif;letter-spacing:.05em;border-block:1px solid #a5445c;background:linear-gradient(90deg,transparent,#72213a77,transparent)}.cast-list li>.portrait-name:before{display:none}.cast-list .sns-icons{margin-top:13px}.btn,.text-link,.bottom-nav a,.socials>a,.tab a,.portrait-open{transition:transform .18s,box-shadow .18s,border-color .18s,background .18s}.btn:active,.text-link:active,.bottom-nav a:active,.socials>a:active,.tab a:active,.portrait-open:active{transform:translateY(3px) scale(.98);border-color:#ff8799;box-shadow:0 0 19px #f12a4b55}.portrait-dialog{width:min(90vw,720px);padding:50px 25px 25px;border:1px solid #df5b74;border-radius:20px;background:linear-gradient(145deg,#391224,#100b12);box-shadow:0 0 70px #8f123766}.portrait-dialog::backdrop{background:#070309e8;backdrop-filter:blur(7px)}.portrait-dialog .portrait-close{position:absolute;right:17px;top:15px;border:1px solid #954057;background:#29101f;border-radius:20px;padding:8px 15px;font-size:11px}.portrait-dialog .profile-grid{display:grid;grid-template-columns:1.2fr 1fr;gap:25px;align-items:center}.portrait-dialog .profile-grid>img{width:100%;max-height:70svh;object-fit:contain;border-radius:80px 80px 12px 12px;border:1px solid #a74b62}.portrait-dialog h2{text-align:center;font-size:26px;margin:20px 0}.portrait-dialog .profile-label{font:9px Georgia;letter-spacing:.2em;color:#ea8b9c;text-align:center}.portrait-dialog .sns-icons{display:flex;flex-wrap:wrap}.portrait-dialog .sns-icons a{width:auto;height:auto;padding:12px 16px;border-radius:8px;font-size:12px;background:#51122a;border:1px solid #bb405b}.portrait-dialog .sns-icons svg{display:none}.profile-note{text-align:center;font-size:11px;color:#c99da9;line-height:2;margin-top:18px}@media(max-width:700px){.hero h1.title-art{width:min(100%,310px)}.story-copy h2.title-art{width:min(100%,300px)}.section-head h2.title-art,.recruit-section h2.title-art,.access-section h2.title-art{width:min(100%,370px)}.page-banner h1.title-art{width:min(100%,370px)}.cast-list>ul{gap:29px 16px}.cast-list li{padding:11px 10px 17px;border-radius:85px 85px 15px 15px}.portrait-open{padding:4px}.cast-list li:before,.cast-list li:after{width:25px;height:25px;top:43px}.cast-list li>.portrait-name{margin-top:16px;padding:9px 2px;font-size:12px}.portrait-dialog{padding:45px 18px 22px}.portrait-dialog .profile-grid{grid-template-columns:1fr;gap:5px}.portrait-dialog .profile-grid>img{max-height:48svh}.portrait-dialog h2{font-size:23px;margin:13px 0}.portrait-dialog .profile-label{margin-top:15px}.rose-atmosphere i{animation-duration:30s}}@media(prefers-reduced-motion:reduce){.rose-atmosphere{display:none}.portrait-open img,.btn,.text-link,.bottom-nav a,.socials>a,.tab a{transition:none}.btn:active,.text-link:active,.bottom-nav a:active,.socials>a:active,.tab a:active,.portrait-open:active{transform:none}}
.hero-content{width:min(84%,620px)}@media(max-width:700px){.hero-content{width:auto}}
/* Keep the atmosphere visible above page imagery, with no blocked taps. */
.rose-atmosphere{z-index:8;display:block;background:radial-gradient(ellipse at 97% 20%,#e51b3e30,transparent 48%),radial-gradient(ellipse at 2% 77%,#c9183a24,transparent 45%)}
.rose-atmosphere:before,.rose-atmosphere:after{content:'';position:absolute;width:220px;height:280px;border-radius:50%;background:radial-gradient(ellipse,#ec224b22,transparent 70%);pointer-events:none;animation:rose-glow 9s ease-in-out infinite alternate}.rose-atmosphere:before{left:-110px;top:18%}.rose-atmosphere:after{right:-110px;bottom:15%;animation-delay:-4s}
.rose-atmosphere i{width:16px;height:25px;top:-32px;background:linear-gradient(135deg,#ff6379 0%,#d72749 45%,#7d102b 100%);box-shadow:inset 1px 1px 2px #ff8d9655;filter:drop-shadow(0 2px 3px #4b081a80);animation:visible-petal 17s linear infinite;animation-delay:-3s}
.rose-atmosphere i:nth-child(2){width:12px;height:19px;animation-duration:21s;animation-delay:-12s}.rose-atmosphere i:nth-child(3){width:15px;height:23px;animation-duration:19s;animation-delay:-7s}.rose-atmosphere i:nth-child(4){width:13px;height:20px;animation-duration:23s;animation-delay:-17s}.rose-atmosphere i:nth-child(5){width:17px;height:25px;animation-duration:18s;animation-delay:-11s}.rose-atmosphere i:nth-child(6){width:11px;height:18px;animation-duration:22s;animation-delay:-5s}
@keyframes visible-petal{0%{transform:translate3d(18px,-35px,0) rotate(-25deg);opacity:0}8%{opacity:.8}45%{transform:translate3d(-14px,47vh,0) rotate(160deg);opacity:.7}90%{opacity:.75}100%{transform:translate3d(35px,110vh,0) rotate(340deg);opacity:0}}
@keyframes rose-glow{from{opacity:.55;transform:scale(.9)}to{opacity:1;transform:scale(1.2)}}
@media(prefers-reduced-motion:reduce){.rose-atmosphere{display:block}.rose-atmosphere:before,.rose-atmosphere:after{animation:none}.rose-atmosphere i{animation:none;opacity:.65;top:20%;transform:rotate(35deg)}.rose-atmosphere i:nth-child(2){top:65%;transform:rotate(110deg)}.rose-atmosphere i:nth-child(3){top:38%;transform:rotate(60deg)}.rose-atmosphere i:nth-child(4){top:82%;transform:rotate(-35deg)}.rose-atmosphere i:nth-child(5){top:55%;transform:rotate(120deg)}.rose-atmosphere i:nth-child(6){top:13%;transform:rotate(20deg)}}
/* A steadier fall with staggered positions, without crowding the copy. */
.rose-atmosphere i{animation-duration:15s;animation-delay:-2s}
.rose-atmosphere i:nth-child(2){animation-duration:18s;animation-delay:-9s}.rose-atmosphere i:nth-child(3){animation-duration:17s;animation-delay:-5s}.rose-atmosphere i:nth-child(4){animation-duration:20s;animation-delay:-13s}.rose-atmosphere i:nth-child(5){animation-duration:16s;animation-delay:-7s}.rose-atmosphere i:nth-child(6){animation-duration:19s;animation-delay:-15s}
.rose-atmosphere i:nth-child(7){left:17%;width:12px;height:19px;animation-duration:17s;animation-delay:-11s}.rose-atmosphere i:nth-child(8){left:37%;width:14px;height:22px;animation-duration:21s;animation-delay:-3s}.rose-atmosphere i:nth-child(9){left:58%;width:11px;height:18px;animation-duration:16s;animation-delay:-13s}.rose-atmosphere i:nth-child(10){left:75%;width:13px;height:20px;animation-duration:18s;animation-delay:-5s}.rose-atmosphere i:nth-child(11){left:5%;width:10px;height:17px;animation-duration:20s;animation-delay:-16s}.rose-atmosphere i:nth-child(12){left:91%;width:14px;height:22px;animation-duration:17s;animation-delay:-8s}
@media(prefers-reduced-motion:reduce){.rose-atmosphere i{animation:none}.rose-atmosphere i:nth-child(n+7){display:none}}
/* TOP and the full cast list share the same portrait components. */
.home-cast-preview .cast-list>ul{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));list-style:none;padding:0;margin:0;gap:24px}
.home-cast-preview .cast-list li{min-width:0;list-style:none}
.home-cast-preview .portrait-name{display:flex;align-items:center;font-weight:700;font-size:15px;line-height:1.7}
.home-cast-preview .sns-icons{display:flex;justify-content:center;gap:10px}
.home-cast-preview .sns-icons a{display:flex;align-items:center;justify-content:center;width:34px;height:34px;border:1px solid #ae354f;background:#500e26;border-radius:50%;color:#ffced7}
.home-cast-preview .sns-icons svg{width:15px;height:15px;max-width:100%;display:block}
@media(max-width:900px){.home-cast-preview .cast-list>ul{grid-template-columns:repeat(2,minmax(0,1fr));gap:30px 20px}}
@media(max-width:700px){.home-cast-preview .cast-list>ul{gap:29px 16px}.home-cast-preview .portrait-name{font-size:12px}.home-cast-preview .sns-icons{gap:7px}.home-cast-preview .sns-icons a{height:29px;width:29px}.home-cast-preview .sns-icons svg{width:13px;height:13px}}

/* rose-buttons.css */
/* A shared rose seal for navigation buttons. */
.btn,.text-link,.topbar nav>a,footer .socials>a,.portrait-dialog .sns-icons a{font-family:'Yu Mincho','Hiragino Mincho ProN','Hiragino Mincho Pro','Noto Serif JP',serif!important;font-weight:500!important;letter-spacing:.1em;position:relative;display:inline-flex;align-items:center;justify-content:space-between;gap:24px;min-height:58px;padding:16px 26px;background:linear-gradient(120deg,#21151c,#32131f);border:2px solid #ed536c;border-radius:60px;color:#fff0eb;box-shadow:0 5px 0 #760f2b,0 8px 18px #0004;text-shadow:1px 1px 0 #5e152a;text-decoration:none;isolation:isolate;transition:transform .18s,box-shadow .18s,background .18s}
.btn:before,.text-link:before,.topbar nav>a:before,footer .socials>a:before,.portrait-dialog .sns-icons a:before{content:'';position:static;display:block;flex:none;width:27px;height:29px;background:url('../img/rose-mark.svg') center/contain no-repeat;pointer-events:none}
.btn:hover,.text-link:hover,.topbar nav>a:hover,footer .socials>a:hover,.portrait-dialog .sns-icons a:hover{color:#fff5ef;background:linear-gradient(120deg,#3b1728,#4c1229)!important;border-color:#ff8396;box-shadow:0 6px 0 #760f2b,0 0 20px #d8244933;transform:translateY(-1px)}
.btn:active,.text-link:active,.topbar nav>a:active,footer .socials>a:active,.portrait-dialog .sns-icons a:active{transform:translateY(4px);box-shadow:0 1px 0 #760f2b,0 0 17px #e42f4e44}
.topbar nav>a{min-height:40px;padding:9px 15px;gap:10px;font-size:12px;background:#20101de8}.topbar nav>a:before{width:17px;height:19px}.topbar nav>a.nav-recruit{background:#32131f!important;border-color:#ed536c!important}
footer .socials>a{display:flex;gap:12px;border-radius:50px;padding:16px;min-height:65px;min-width:0}footer .socials>a:before{width:24px;height:26px}footer .socials>a>svg{display:none}footer .social-label{font-family:inherit;font-size:13px;font-weight:500;letter-spacing:.05em}.social-label small{letter-spacing:0}.social-arrow{position:static;margin-left:auto;color:#f5cbd0}
.portrait-dialog .sns-icons{gap:12px}.portrait-dialog .sns-icons a{padding:12px 18px;min-height:45px;gap:11px;font-size:12px}.portrait-dialog .sns-icons a:before{width:19px;height:21px}
.bottom-nav .nav-en,.bottom-nav .nav-ja,.mobile-menu a{font-family:'Yu Mincho','Hiragino Mincho ProN',serif}.bottom-nav a{border-radius:30px}.bottom-nav a[aria-current="page"]{border-color:#ed536c;box-shadow:0 3px 0 #760f2b}
.cast-list-action .btn{min-width:245px}.text-link>span,.btn>span{color:#f9cbd2}
@media(max-width:700px){.btn,.text-link{min-height:56px;padding:15px 22px;gap:22px;font-size:13px}.btn:before,.text-link:before{width:25px;height:27px}.cast-list-action .btn{min-width:230px}footer .socials>a{display:flex;flex-direction:column;justify-content:center;gap:8px;border-radius:24px;padding:15px 8px;min-height:105px}footer .socials>a:before{width:25px;height:27px}.social-arrow{position:absolute;top:10px;right:10px;font-size:12px}footer .social-label{font-size:12px}.portrait-dialog .sns-icons a{border-radius:35px}}
@media(prefers-reduced-motion:reduce){.btn,.text-link,.topbar nav>a,footer .socials>a,.portrait-dialog .sns-icons a{transition:none}}

/* dividers.css */
/* One thorn-and-rose border at each major content boundary. */
.thorn-divider{width:100%;height:42px;flex:none;position:relative;background:url('../img/ibara-divider.svg') center/320px 42px repeat-x;pointer-events:none;opacity:.9;margin:0;clear:both}
.ribbon:after,.cast-section:before,.page-banner:after,footer:before,.recruit-section:before{display:none!important}
.cast-section,.recruit-section,.page-banner,footer,.ribbon{border-top:0;border-bottom:0}
.page-content>.thorn-divider{margin:40px 0 25px}
.thorn-divider+footer{border-top:0}.thorn-divider+.cast-section{padding-top:65px}.thorn-divider+.section{padding-top:65px}
@media(max-width:700px){.thorn-divider{height:34px;background-size:260px 34px}.thorn-divider+.section,.thorn-divider+.cast-section{padding-top:45px}.page-content>.thorn-divider{margin:30px 0 20px}}
/* Use equal padding above and below each content section. */
.section:not(.hero),.thorn-divider+.section,.thorn-divider+.cast-section{padding-top:72px;padding-bottom:72px}
.section:not(.hero)>:first-child{margin-top:0}.section:not(.hero)>:last-child{margin-bottom:0}
.system-section{margin-top:0;margin-bottom:0}
@media(max-width:700px){.section:not(.hero),.thorn-divider+.section,.thorn-divider+.cast-section{padding-top:45px;padding-bottom:45px}.system-section{margin-top:0;margin-bottom:0}}
/* Give section openings and endings equal, generous breathing room. */
.section:not(.hero),.thorn-divider+.section,.thorn-divider+.cast-section{padding-top:90px;padding-bottom:90px}
.inner-page .page-content{padding-top:75px;padding-bottom:75px}
@media(max-width:700px){.section:not(.hero),.thorn-divider+.section,.thorn-divider+.cast-section{padding-top:60px;padding-bottom:60px}.inner-page .page-content{padding-top:55px;padding-bottom:55px}}

/* Keep the system section open while retaining individual plan cards. */
.system-section{background:transparent;border:0;border-radius:0;box-shadow:none}

/* Hero signature: restrained typography and a thorn flourish. */
.hero .hero-small{position:relative;display:inline-block;background:none;border:0;border-radius:0;box-shadow:none;padding:8px 0 12px 30px;margin:0 0 18px;font-family:"Yu Mincho","Hiragino Mincho ProN",serif;font-size:clamp(12px,1.25vw,16px);letter-spacing:.19em;color:#fff0ed;text-shadow:0 2px 12px #17030d}
.hero .hero-small::before{content:"";position:absolute;left:0;top:5px;width:17px;height:30px;margin:0;background:url('../img/ibara-divider.svg') center/auto 30px no-repeat;transform:rotate(-35deg);opacity:.95}
.hero .hero-small::after{content:"";position:absolute;left:30px;right:0;bottom:0;height:1px;background:linear-gradient(90deg,#d94766,transparent)}
@media(max-width:700px){.hero .hero-small{font-size:11px;letter-spacing:.16em;margin-bottom:18px;padding-left:25px}.hero .hero-small::after{left:25px}}

/* Access details remain centered after removing the decorative photo. */
#access.access-section{grid-template-columns:minmax(0,1fr);gap:0}
#access>div.reveal{width:100%;max-width:860px;margin-inline:auto}
#access .access-map-action{display:flex;justify-content:center;margin-top:28px}

/* Separate the upper-left signature from the main hero message. */
.hero .hero-content{top:19%;bottom:16%;left:8%;right:7%;width:auto;transform:none;display:flex;flex-direction:column;justify-content:space-between;gap:32px;text-align:left}
.hero-identity>.eyebrow{font-size:clamp(11px,1.35vw,17px);letter-spacing:.12em;line-height:1.7;margin:0 0 14px}
.hero .hero-identity>.hero-small{font-size:clamp(16px,1.8vw,23px);letter-spacing:.13em;margin:0;padding-bottom:10px}
.hero .hero-message h1{font-size:clamp(44px,5.5vw,78px);line-height:1.42;letter-spacing:.06em;padding-top:0;padding-bottom:25px}
.hero .hero-message .hero-sub{font-size:clamp(13px,1.5vw,19px);letter-spacing:.1em;line-height:1.8;margin:28px 0 0}
@media(max-width:700px){
.hero .hero-content{top:19%;bottom:18%;gap:28px}
.hero-identity>.eyebrow{font-size:10px;letter-spacing:.08em;margin-bottom:14px}
.hero .hero-identity>.hero-small{font-size:15px;letter-spacing:.1em}
.hero .hero-message h1{font-size:clamp(34px,10vw,47px);line-height:1.42;letter-spacing:.04em;padding-right:0;padding-bottom:21px}
.hero .hero-message .hero-sub{font-size:13px;letter-spacing:.06em;margin-top:25px}
}

/* Match the hero closing line to the shop signature. */
.hero .hero-message .hero-sub{position:relative;width:fit-content;max-width:100%;font-family:"Yu Mincho","Hiragino Mincho ProN","Noto Serif JP",serif;font-size:clamp(16px,1.8vw,23px);font-weight:500;letter-spacing:.13em;padding-bottom:24px;text-shadow:1px 2px 0 #5f1028,0 0 18px #16040be6}
.hero .hero-message .hero-sub::after{content:"";position:absolute;left:0;right:0;bottom:-6px;height:28px;background:url('../img/thorn-title.svg') center bottom/100% 100% no-repeat;pointer-events:none}
@media(max-width:700px){.hero .hero-message .hero-sub{font-size:15px;letter-spacing:.1em;padding-bottom:20px}.hero .hero-message .hero-sub::after{height:24px}}

/* Center the footer wordmark itself, with its emblem offset to the left. */
footer .footer-top{display:flex;flex-direction:column;align-items:center;gap:0}
footer .footer-top>.brand{position:relative;display:block;width:max-content;margin:0 auto 36px;min-height:65px;align-content:center}
footer .footer-top>.brand>span{display:block;text-align:center}
footer .footer-top>.brand>img{position:absolute;right:calc(100% + 15px);top:50%;transform:translateY(-50%);margin:0}
footer .footer-top>.socials{width:100%}
@media(max-width:700px){footer .footer-top>.brand{min-height:48px;margin-bottom:32px}footer .footer-top>.brand>img{right:calc(100% + 12px)}}

/* Open recruit section and consistent storybook typography throughout. */
.recruit-section{background:transparent;border:0;border-radius:0;box-shadow:none}
:root{--ibara-type:"Yu Mincho","Hiragino Mincho ProN","Hiragino Mincho Pro","Noto Serif JP",serif}
body,body *{font-family:var(--ibara-type)!important}

/* Number the final home section and keep the closing hero line plain. */
.footer-sns-title{text-align:center;font-size:12px;letter-spacing:.18em;margin:0 0 36px}
.hero .hero-message .hero-sub::after{content:none;display:none}
.hero .hero-message .hero-sub{padding-bottom:0}

/* Keep all numbered section labels at the same scale. */
body .numbered-title{font-size:12px!important;font-weight:500!important;line-height:1.8!important;letter-spacing:.18em!important;text-align:center}

/* refinement.css */
/* A shared, quieter black-and-crimson finish. */
body{background-color:#0e0b0e;background-image:radial-gradient(#8f25351a .65px,transparent .65px)}
footer{background:#120b11}
.hero .shade{background:linear-gradient(90deg,rgba(15,5,12,.66),rgba(27,6,15,.25) 55%,rgba(12,5,10,.08)),linear-gradient(0deg,rgba(14,5,12,.88),transparent 65%)}
.hero-content{text-shadow:0 2px 18px #10050ccc}
.plan{background:radial-gradient(ellipse at top right,#54132938,transparent 70%),#191017;border-color:#873047;box-shadow:0 5px 0 #390c1d}
.plan.accent{background:linear-gradient(135deg,#2b1020,#471025);border-color:#b23a54}
.btn,.text-link,.topbar nav>a,footer .socials>a,.portrait-dialog .sns-icons a{background:linear-gradient(120deg,#1b1119,#30101e);border-color:#d74460;box-shadow:0 4px 0 #650e27,0 10px 24px #0003}
.btn:hover,.text-link:hover,footer .socials>a:hover{border-color:#ec647a;box-shadow:0 4px 0 #650e27,0 0 20px #ad213126}
.cast-list li{background:linear-gradient(145deg,#29131f,#100c11 65%);border-color:#713044;box-shadow:0 5px 0 #2a0b17,0 12px 26px #0004;padding:14px 14px 22px}
.portrait-open{border:1px solid #b64a60;padding:5px;box-shadow:0 0 0 3px #180b13,0 0 0 4px #652437}
.portrait-open img{display:block;width:100%;height:auto;aspect-ratio:3/4;object-fit:cover;object-position:50% 25%;filter:brightness(1.025) contrast(1.025)}
.portrait-open:after{box-shadow:inset 0 -16px 22px #18081022}
.cast-list li>.portrait-name{display:flex;align-items:center;justify-content:center;min-height:48px;margin:20px 0 14px;padding:10px 2px;line-height:1.7;border-block-color:#6f2a40;background:transparent}
.cast-list .sns-icons{gap:10px;margin-top:14px}
.cast-list .sns-icons a{background:#25101c;border-color:#713047;color:#e9c6ce}
.rose-atmosphere{background:radial-gradient(ellipse at 98% 25%,#bd18351a,transparent 42%),radial-gradient(ellipse at 2% 80%,#a5133012,transparent 40%)}
.rose-atmosphere:before,.rose-atmosphere:after{background:radial-gradient(ellipse,#d623401b,transparent 70%)}
.rose-atmosphere i{--sway:18px;--petal-opacity:.58;animation-name:refined-petal;animation-duration:22s;background:linear-gradient(135deg,#df4860,#a31533 55%,#530d25);filter:none;box-shadow:inset 1px 1px 1px #ee738033}
.rose-atmosphere i:nth-child(1){left:3%;width:12px;height:19px;animation-duration:20s}
.rose-atmosphere i:nth-child(2){left:96%;width:9px;height:15px;animation-duration:26s}
.rose-atmosphere i:nth-child(3){left:36%;width:10px;height:16px;animation-duration:23s;--sway:-26px;--petal-opacity:.45}
.rose-atmosphere i:nth-child(4){left:91%;width:13px;height:20px;animation-duration:29s}
.rose-atmosphere i:nth-child(5){left:97%;width:15px;height:23px;animation-duration:21s;--sway:-20px}
.rose-atmosphere i:nth-child(6){left:2%;width:8px;height:13px;animation-duration:27s}
.rose-atmosphere i:nth-child(7){left:24%;width:11px;height:17px;animation-duration:25s;--petal-opacity:.46}
.rose-atmosphere i:nth-child(8){left:65%;width:12px;height:18px;animation-duration:28s;--petal-opacity:.46}
.rose-atmosphere i:nth-child(9){left:51%;width:10px;height:16px;animation-duration:24s;--petal-opacity:.42}
.rose-atmosphere i:nth-child(10){left:77%;width:11px;height:18px;animation-duration:22s;--petal-opacity:.46}
.rose-atmosphere i:nth-child(11){left:5%;width:10px;height:16px;animation-duration:26s}
.rose-atmosphere i:nth-child(12){left:94%;width:12px;height:19px;animation-duration:23s;--sway:-18px}
@keyframes refined-petal{0%{transform:translate3d(0,-35px,0) rotate(-25deg);opacity:0}10%{opacity:var(--petal-opacity)}50%{transform:translate3d(var(--sway),50vh,0) rotate(130deg)}88%{opacity:var(--petal-opacity)}100%{transform:translate3d(0,110vh,0) rotate(310deg);opacity:0}}
@media(max-width:700px){.cast-list li{padding:10px 9px 18px}.portrait-open{padding:4px}.cast-list li>.portrait-name{min-height:40px;margin:16px 0 12px;padding:8px 1px}.hero .shade{background:linear-gradient(90deg,#16070c80,#1b08102b 75%),linear-gradient(0deg,#110710e6,transparent 75%)}}
@media(prefers-reduced-motion:reduce){.rose-atmosphere i{display:none}.rose-atmosphere:before,.rose-atmosphere:after{animation:none}}
@media(min-width:701px){.hero .hero-content{top:max(26%,185px);bottom:23%;gap:24px}.hero .hero-message h1{font-size:clamp(44px,5vw,72px)}}

/* finishing.css */
/* 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}}

/* castle.css */
/* Quiet velvet folds; no extra bitmap downloads or continuous texture animation. */
body{
 background-color:#0e0b0f;
 background-image:
  repeating-linear-gradient(98deg,#f6cfdf03 0px,#f6cfdf03 1px,transparent 1px,transparent 4px),
  radial-gradient(ellipse at 48% 30%,#09090d90 0%,transparent 58%),
  linear-gradient(108deg,#100c1100 4%,#4b192422 15%,#09090c55 26%,#33131e25 42%,#0c0b1080 56%,#3d14232b 76%,#08090b55 91%);
 background-size:4px 6px,100% 100%,100% 1100px;
}
footer{
 background-color:#100b11;
 background-image:repeating-linear-gradient(98deg,#f6cfdf03 0px,#f6cfdf03 1px,transparent 1px,transparent 4px),radial-gradient(ellipse at 50% 5%,#4b13252b,transparent 65%),linear-gradient(108deg,#0a090d55,#2c101c25 38%,#09090d55 75%);
 background-size:4px 6px,100% 100%,100% 100%;
}
/* Keep the word itself centered and the existing emblem offset to its left. */
.topbar>.brand>img,footer .footer-top>.brand>img{filter:drop-shadow(0 0 7px #ba173753) drop-shadow(0 0 18px #7b0d293b)}
.brand .brand-wordmark{display:inline-block;font-size:inherit;letter-spacing:inherit;font-weight:500;font-style:normal;color:#f1edef;text-shadow:0 1px 1px #050509,0 0 15px #d7ced320}
@supports(background-clip:text){
 .brand .brand-wordmark{background:linear-gradient(180deg,#fffdfc 9%,#e4dce2 40%,#bcb2bc 52%,#f5edef 65%,#d5c6d1 100%);background-clip:text;-webkit-background-clip:text;color:transparent;text-shadow:none}
}
/* Red light remains on the rim instead of changing skin tones. */
.portrait-open{transition:border-color .3s,box-shadow .35s,transform .18s}
.portrait-open:before{content:'';position:absolute;inset:0;z-index:2;border-radius:inherit;padding:3px;background:radial-gradient(ellipse at 50% 0%,#ffe0e6 0%,#ec5473 16%,#d3244955 36%,transparent 68%);-webkit-mask:linear-gradient(#fff 0 0) content-box,linear-gradient(#fff 0 0);-webkit-mask-composite:xor;mask:linear-gradient(#fff 0 0) content-box,linear-gradient(#fff 0 0);mask-composite:exclude;opacity:0;pointer-events:none;transition:opacity .35s}
.portrait-open.is-spotlit,.portrait-open:focus-visible{border-color:#dd6b80;box-shadow:0 -6px 24px #c6254b40,0 0 0 3px #180b13,0 0 0 4px #a24057}
.portrait-open.is-spotlit:before,.portrait-open:focus-visible:before{opacity:1}
@media(hover:hover){.portrait-open:hover{border-color:#dd6b80;box-shadow:0 -6px 24px #c6254b40,0 0 0 3px #180b13,0 0 0 4px #a24057}.portrait-open:hover:before{opacity:1}}
.portrait-dialog[open] .profile-grid>img{border-color:#cb6178;box-shadow:0 -7px 26px #c6254b2b;animation:portrait-welcome .7s ease-out}
@keyframes portrait-welcome{from{box-shadow:0 -8px 34px #e3396966}to{box-shadow:0 -7px 26px #c6254b2b}}
/* A final line below the social links, with a restrained thorn flourish. */
.story-epilogue{position:relative;text-align:center;margin:0 auto 48px;padding:28px 15px 36px;max-width:640px}
.story-epilogue p{font-size:clamp(14px,1.5vw,19px);font-weight:500;letter-spacing:.16em;line-height:2.2;color:#e7cbd4;text-shadow:0 2px 0 #491226;margin:0;text-wrap:balance}
.story-epilogue:after{content:'';position:absolute;bottom:0;left:50%;transform:translateX(-50%);width:min(210px,65%);height:24px;background:url('../img/thorn-title.svg') center/100% 100% no-repeat;opacity:.7}
@media(max-width:700px){.story-epilogue{padding:22px 0 33px;margin-bottom:36px}.story-epilogue p{font-size:14px;letter-spacing:.1em}.topbar>.brand>img,footer .footer-top>.brand>img{filter:drop-shadow(0 0 6px #ba173753) drop-shadow(0 0 13px #7b0d293b)}}
@media(prefers-reduced-motion:reduce){.portrait-dialog[open] .profile-grid>img{animation:none}.portrait-open,.portrait-open:before{transition:none}}
@media(forced-colors:active){.brand .brand-wordmark{background:none;color:CanvasText}}
.js .reveal{transition-duration:1.2s}
/* The close control owns its own row, including its keyboard-focus outline. */
.portrait-dialog{padding:18px 25px 25px;overflow-y:auto}
.portrait-dialog .portrait-close{position:static;display:block;width:fit-content;max-width:100%;min-height:44px;margin:0 0 22px auto;padding:10px 18px;line-height:1.4;box-shadow:none}
.portrait-dialog .portrait-close:focus-visible,#photo-dialog #close-photo:focus-visible{outline:2px solid #ed8b9e;outline-offset:3px}
#photo-dialog{padding:18px 18px 16px}
#photo-dialog #close-photo{position:static;display:block;width:fit-content;max-width:100%;min-height:44px;margin:0 0 20px auto;padding:10px 18px;line-height:1.4;box-shadow:none}
@media(max-width:700px){.portrait-dialog{padding:16px 18px 22px}.portrait-dialog .portrait-close{margin-bottom:20px}#photo-dialog{padding:16px 16px 18px}}
@media(prefers-reduced-motion:reduce){.js .reveal{transition:none}}

/* editorial.css */
/* A restrained common photo treatment: no hue shift or heavy saturation. */
.portrait-open img,.story-photo img,.gallery img,.portrait-dialog .profile-grid>img,#large-photo{filter:contrast(1.045) saturate(1.035) brightness(.995)}
.portrait-open:after{box-shadow:inset 0 -22px 30px #0e060e30,inset 0 0 16px #10070d12}
/* Chapter rules maintain the existing centered, uniform type scale. */
body .numbered-title{display:flex;align-items:center;justify-content:center;gap:16px}
body .numbered-title:before,body .numbered-title:after{content:'';display:block;position:static;flex:0 1 62px;width:62px;height:1px;background:linear-gradient(90deg,transparent,#a9415b);pointer-events:none}
body .numbered-title:after{transform:rotate(180deg)}
/* Fine corner engraving on individual pricing cards. */
.plan-ornaments{position:absolute;inset:12px;pointer-events:none;z-index:0}
.plan-ornaments:before,.plan-ornaments:after{content:'';position:absolute;width:27px;height:27px;background:url('../img/thorn-corner.svg') center/contain no-repeat;opacity:.75}
.plan-ornaments:before{left:0;top:0}.plan-ornaments:after{right:0;bottom:0;transform:rotate(180deg)}
.plan{padding:34px 34px 30px;background:radial-gradient(ellipse at 100% 0%,#4e16283b,transparent 65%),#191017}
.plan .plan-index{display:block;font-size:10px;letter-spacing:.22em;margin:0 48px 27px 0;color:#d48d9c}
.plan h3{font-size:25px;font-weight:500;margin:0 0 22px;padding-bottom:16px;line-height:1.7;border-bottom:1px solid #7e304650}
.plan .price{font-size:clamp(44px,4.4vw,58px);line-height:1.3;margin:16px 0 20px;font-weight:500;font-variant-numeric:lining-nums tabular-nums;color:#f35d76;letter-spacing:.015em}
.plan .price span{font-size:14px;letter-spacing:.05em;margin-left:12px;color:#d8b5bf}
.plan>p:not(.price){font-size:13px;line-height:1.9;color:#d1afb9}
.plan .plan-foot{margin-top:30px;padding-top:20px;font-size:12px;line-height:1.9}
#system>.invitation-detail{position:relative;border:1px solid #994058;border-radius:22px;padding:32px 34px;margin:0 0 32px;background:radial-gradient(ellipse at 100% 0%,#4e16283b,transparent 65%),#191017;box-shadow:0 5px 0 #390c1d}
#system .invitation-detail table{border:0;background:transparent;border-radius:0;margin:0 0 16px}
#system .invitation-detail caption{padding:0 0 18px;margin:0;font-size:24px;color:#f5e5e9}
#system .invitation-detail th,#system .invitation-detail td{padding:20px 0 8px;border-top:1px solid #77304770;border-bottom:0}
#system .invitation-detail th{font-size:14px;color:#d1afb9}
#system .invitation-detail td{text-align:right;white-space:nowrap}
#system .invitation-detail .system_item_price{font-size:36px;letter-spacing:.02em;color:#f35d76;font-variant-numeric:lining-nums tabular-nums}
#system .invitation-detail>p{font-size:12px;line-height:1.9;color:#d1afb9;margin:0}
@media(max-width:700px){body .numbered-title{gap:12px}body .numbered-title:before,body .numbered-title:after{flex-basis:42px;width:42px}.plan{padding:32px 27px 28px}.plan h3{font-size:23px}.plan .price{font-size:46px}.plan .price span{font-size:12px;margin-left:8px}#system>.invitation-detail{padding:30px 24px}#system .invitation-detail caption{font-size:22px}#system .invitation-detail th{font-size:12px}#system .invitation-detail .system_item_price{font-size:29px}}

/* navigation.css */
/* A brief blackout between local pages; the initial visit stays unobstructed. */
html::after{content:'';position:fixed;inset:0;z-index:10000;background:#09070b;opacity:0;pointer-events:none;transition:opacity .18s ease-in}
html.page-leaving::after,html.page-arriving::after{opacity:1}
html.page-revealing::after{opacity:0;transition:opacity .48s ease-out}
@media(prefers-reduced-motion:reduce){html::after{display:none;transition:none}}

/* clarity.css */
/* Start in CSS before the first paint, so the hero cannot flash into view.
   The video and copy emerge from black without a curtain or a blocking layer. */
.hero{background:#09070b}
.hero video{animation:hero-image-emerge 2.6s ease-out .1s both}
.hero .hero-identity{animation:hero-copy-emerge 1.8s ease-out .4s both}
.hero .hero-message h1{animation:hero-copy-emerge 2.8s cubic-bezier(.22,.5,.35,1) 1s both}
.hero .hero-message h1::after{animation:hero-thorn-emerge 2s ease-out 2.6s both}
.hero .hero-message .hero-sub{animation:hero-copy-emerge 1.9s ease-out 2.4s both}
@keyframes hero-image-emerge{from{opacity:0}to{opacity:1}}
@keyframes hero-copy-emerge{from{opacity:0}to{opacity:1}}
@keyframes hero-thorn-emerge{from{clip-path:inset(0 100% 0 0)}to{clip-path:inset(0 0 0 0)}}
/* Preserve native photo detail instead of stretching small files to dialog width. */
#photo-dialog #large-photo{width:auto;max-width:100%;margin-inline:auto}
.portrait-dialog .profile-grid>img{width:auto;max-width:100%;justify-self:center}
@media(prefers-reduced-motion:reduce){.hero video,.hero .hero-identity,.hero .hero-message h1,.hero .hero-message h1::after,.hero .hero-message .hero-sub{animation:none;opacity:1}.hero .hero-message h1::after{clip-path:none}}

/* Six supplied gallery portraits. */
@media(min-width:701px){.gallery{grid-template-columns:repeat(3,minmax(0,1fr))}}
.gallery img{aspect-ratio:2/3;object-position:center}

.profile-details dl{margin:25px 0 30px}.profile-details dl>div{display:block;text-align:center;padding:18px 0}.profile-details dt{letter-spacing:.18em;color:#df879d;font-weight:bold;margin-bottom:12px}.profile-details dd{line-height:2;overflow-wrap:anywhere}

.story-photo img{aspect-ratio:1536/1123;height:auto;object-fit:contain}

/* Show two portraits before swiping through the gallery. */
.gallery-section .gallery{display:flex;gap:18px;overflow-x:auto;scroll-snap-type:x mandatory;scroll-padding-inline:6%;-webkit-overflow-scrolling:touch}
.gallery-section .gallery button{flex:0 0 calc((100% - 18px)/2);min-width:0;scroll-snap-align:start}
@media(max-width:700px){
 .gallery-section .gallery{gap:10px;padding-inline:7%;scroll-padding-inline:7%}
 .gallery-section .gallery button{flex-basis:calc((100% - 10px)/2);border-radius:36px 36px 5px 5px;padding:3px 3px 0}
 .gallery-section .gallery img{border-radius:32px 32px 2px 2px}
 .gallery-section .album-caption{font-size:7px;letter-spacing:.06em;padding:10px 0}
}

.recruit-section .recruit-group-photo{display:block;width:100%;max-width:1040px;height:auto;margin:30px auto 36px;border:1px solid #9c3c5266;border-radius:18px;box-shadow:0 12px 32px #0005}
@media(max-width:700px){.recruit-section .recruit-group-photo{margin:24px auto 28px;border-radius:12px}}

/* Matching three-column SNS cards in cast profiles. */
.portrait-dialog .sns-icons{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;width:100%;margin-top:24px}
.portrait-dialog .sns-icons a{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;width:100%;min-width:0;height:auto;min-height:118px;padding:20px 5px 16px;border-radius:24px;text-align:center;letter-spacing:.02em}
.portrait-dialog .sns-icons a:before{width:27px;height:29px}
.portrait-dialog .cast-social-label{display:block;width:100%;font-size:13px;line-height:1.5}
.portrait-dialog .cast-social-label small{display:block;margin-top:5px;font-size:9px;color:#c99da9;letter-spacing:0;overflow-wrap:anywhere}
.portrait-dialog .cast-social-arrow{position:absolute;top:9px;right:10px;font-size:13px;color:#e6bac3}
@media(max-width:380px){.portrait-dialog .sns-icons{gap:7px}.portrait-dialog .sns-icons a{border-radius:19px;padding-inline:3px}.portrait-dialog .cast-social-label{font-size:11px}.portrait-dialog .cast-social-label small{font-size:8px}}

/* Recruitment application link restored from the original official page. */
.page-recruit .recruit-apply{text-align:center;padding:64px 20px 80px}.page-recruit .recruit-apply p{margin:0 0 28px;color:#e8cbd1;font-family:var(--ibara-type,serif);line-height:1.8}.page-recruit .recruit-apply .btn{max-width:100%;box-sizing:border-box;white-space:normal}@media(max-width:700px){.page-recruit .recruit-apply{padding:48px 20px 60px}}

/* Match the lower application button directly beneath the recruitment title. */
.page-recruit .recruit-apply.recruit-apply-top{padding:12px 0 32px}

/* performance.css */
/* Stop decorative painting when the document is not visible. */
html.page-inactive .rose-atmosphere i,
html.page-inactive .rose-atmosphere::before,
html.page-inactive .rose-atmosphere::after{animation-play-state:paused}
