.devil-may-cry{font-synthesis:weight style;--bg:#0d0b0e;--ink:#f4e7df;--muted:#b2a5ad;--accent:#ed6b66;background:#0d0b0e}.devil-may-cry:before{content:'';position:fixed;inset:0;pointer-events:none;z-index:4;opacity:.045;background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='180' height='180'%3E%3Cfilter id='g'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.8' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Cpath fill='%23fff' filter='url(%23g)' d='M0 0h180v180H0z'/%3E%3C/svg%3E")}.devil-may-cry .dmc-hero{min-height:740px;background:#090c11}.devil-may-cry .hero-art{inset:0}.devil-may-cry .hero-art>img{object-position:70% center;filter:saturate(1.3) contrast(1.08)}.devil-may-cry .hero-shade{background:linear-gradient(90deg,#09090de8,transparent 68%),linear-gradient(0deg,#0d0b0e,transparent 45%)}.devil-may-cry .hero-copy{width:51%;margin-left:7%;padding:25px 0 75px}.devil-may-cry .hero-logo{width:330px;max-width:85%;height:auto;margin:0 0 28px;filter:drop-shadow(0 8px 20px #ff18392b)}.devil-may-cry .hero-copy h1{font:900 italic clamp(95px,10vw,150px)/.79 Barlow,Impact,sans-serif;letter-spacing:-.05em;transform:rotate(-5deg);margin:30px 0 38px;text-shadow:5px 6px 0 #130d16,9px 8px 0 #d71b2e45}.devil-may-cry .hero-copy h1 em{color:#e91e37;display:block;margin-left:35px}.devil-may-cry .hero-copy>p{font:italic 18px/1.55 Georgia;color:#d0c1c8}.devil-may-cry .hero-copy>.eyebrow{font-size:9px;letter-spacing:.22em}.devil-may-cry .button-primary{background:#b71830;color:#fff1ed;box-shadow:0 10px 40px #9c09204a;transform:skew(-5deg)}.hero-side-note{position:absolute;right:6%;bottom:80px;display:grid;gap:10px;text-align:right}.hero-side-note b{font:9px Inter;letter-spacing:.12em;color:#c7afb3}.hero-side-note span{font:italic 19px Georgia;color:#eee1db}.blood-swipe{position:absolute;inset:19% auto 5% 0;width:55%;z-index:-1;background:radial-gradient(ellipse at 35% 65%,#ca092955,transparent 61%);filter:blur(20px)}.dmc-weather{position:absolute;inset:0;pointer-events:none;overflow:hidden;z-index:0}.dmc-weather i{position:absolute;width:65%;height:2px;background:linear-gradient(90deg,transparent,#e3163440,transparent);rotate:-24deg;top:51%;left:-20%;box-shadow:0 14px 0 #9f132822;animation:devil-flash 8s ease-in-out infinite}.dmc-weather i:nth-child(2){top:73%;left:35%;animation-delay:-3s}.dmc-weather i:nth-child(3){width:20%;top:22%;left:70%;animation-delay:-5s}@keyframes devil-flash{0%,80%,100%{opacity:.25;scale:1}88%{opacity:1;scale:1.08}}
.style-room{display:grid;grid-template-columns:.9fr 1.1fr;gap:80px;position:relative;max-width:1250px;width:86%;margin:80px auto 0;padding:70px 0 85px;background:radial-gradient(ellipse at 70% 50%,#86233b2b,transparent 65%)}.style-intro h2{font:900 italic clamp(65px,6.5vw,100px)/.82 Barlow;letter-spacing:-.04em;margin:23px 0 35px}.style-intro h2 em{color:#ed304e}.style-intro>p{font:italic 18px/1.6 Georgia;color:#c1aab3}.style-intro .source{margin-top:25px}.style-selector{position:relative}.style-tabs{display:grid;grid-template-columns:repeat(4,1fr);gap:7px}.style-tabs button{display:grid;justify-items:center;gap:12px;padding:18px 3px;background:#ffffff03;color:#a78b9c;min-height:105px;font:9px Inter}.style-tabs svg{width:43px;height:43px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}.style-tabs button[aria-selected=true]{background:#ac234134;color:#f3afa2;box-shadow:0 10px 40px #9a173220}.style-tabs button[aria-selected=true] svg{animation:style-mark 4s ease-in-out infinite}@keyframes style-mark{50%{transform:translateY(-4px) rotate(-5deg);filter:drop-shadow(0 3px 9px #d44b50)}}#style-info{display:flex;position:relative;align-items:center;gap:20px;padding:30px 10px 20px;min-height:255px;overflow:hidden}.style-initial{font:900 italic 145px/.9 Barlow;color:#b22c4750;min-width:95px;text-shadow:-7px 6px 0 #e3385620}#style-info small{font:8px Inter;letter-spacing:.12em;color:#c4798b}#style-info h3{font:800 italic 36px Barlow;margin:10px 0 13px}#style-info p{font:11px/1.9 Inter;color:#b7a1b1}.style-room[data-style-active="2"]{background:radial-gradient(ellipse at 70% 50%,#4d657d26,transparent 65%)}.style-room[data-style-active="3"]{background:radial-gradient(ellipse at 70% 50%,#bb6a2726,transparent 65%)}.style-selector .secret-object{right:0;bottom:0}.devil-may-cry .chronicle-ending{background:linear-gradient(0deg,#380c1960,transparent);padding:70px 6%}.devil-may-cry .chronicle-ending>img{width:240px;max-width:70%;height:auto}.devil-may-cry .chronicle-ending h2{font:800 italic 38px/1.1 Barlow}.devil-may-cry .chronicle-ending h2 em{color:#cc6b7b}
/* The twins headline the cast; the shop's other hunters share the next spread. */
.devil-cast{width:88%;max-width:1270px;margin:50px auto 70px;position:relative}
.cast-heading{margin-bottom:35px}
.cast-heading h2{font:900 italic 70px/.95 Barlow;margin-top:17px;letter-spacing:-.03em}
.cast-heading h2 em{color:#e23c55;font-style:inherit}
.sparda-twins{display:grid;grid-template-columns:1fr 1fr;gap:35px;align-items:start}
.devil-person{position:relative;min-width:0}
.cast-art{height:230px;overflow:hidden;background:#08080b;position:relative}
.cast-art img{width:100%;height:100%;object-fit:cover;transition:scale .5s,filter .5s}
.devil-person:hover .cast-art img{scale:1.025;filter:contrast(1.06)}
.cast-art:after{content:'';position:absolute;inset:0;background:linear-gradient(0deg,#100b10,transparent 45%);pointer-events:none}
.sparda-twins .cast-art{height:320px;clip-path:polygon(0 0,100% 0,100% 93%,0 100%)}
.person-dante .cast-art img{object-position:center 25%}
.person-vergil .cast-art{background:#d5dde0;clip-path:polygon(0 7%,100% 0,100% 100%,0 93%)}
.person-vergil .cast-art img{object-fit:contain;object-position:center 15%;mix-blend-mode:multiply;width:100%;height:185%;margin-top:-15px}
.person-vergil .cast-art:after{background:linear-gradient(0deg,#15243550,transparent 60%)}
.cast-copy{padding:18px 10px 12px;position:relative}
.cast-copy small{font:8px Inter;letter-spacing:.13em;color:#c67183}
.cast-copy h3{font:900 italic 48px/.95 Barlow;margin:12px 0 14px;color:#e8d4d6}
.cast-copy p{font:11px/1.9 Inter;color:#b19dab;max-width:440px}
.person-vergil .cast-copy small{color:#84a7bd}
.person-vergil .cast-copy h3{color:#aac5d7}
.devil-crew{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:25px;margin-top:45px}
.devil-crew .cast-art{height:170px}
.person-nero .cast-art img{object-position:center 25%;height:230%;margin-top:-25px}
.devil-crew .cast-copy h3{font-size:34px}
.devil-crew .cast-copy small{font-size:7px;letter-spacing:.07em}
.devil-crew .cast-copy p{font-size:10px}


/* A bloodline, not a field map: loose curves and red orbs join five illustrated worlds. */
.dmc-run{background:linear-gradient(165deg,#49141e40,#0d0b0e 80%);position:relative}
.devil-may-cry .journey-summary{margin:0 auto;padding:27px 0 32px;background:none;width:86%;border-radius:0}
.devil-may-cry .summary-value{font-style:italic;color:#e67b79}
.devil-may-cry .summary-resume{background:#72152e22}
.devil-may-cry .hero-copy h1 em{font-style:inherit}
.blood-swipe{inset:17% auto -5% -12%;width:68%;background:url('assets/blood-ink.svg') center/contain no-repeat;filter:none;opacity:.42;z-index:-1}
.hero-side-note svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.4}
.hero-side-note span{display:flex;align-items:center;gap:9px;justify-content:end}
.hunter-ledger{overflow:clip;position:relative;padding:75px 0 20px;background:radial-gradient(ellipse at 0 10%,#720d2320,transparent 30%)}
.wall-heading{display:flex;justify-content:space-between;align-items:end;gap:30px;width:88%;max-width:1260px;margin:0 auto 25px}
.wall-heading h2{font:900 italic clamp(36px,4.5vw,66px)/.95 Barlow;letter-spacing:-.035em;margin-top:17px}
.wall-heading h2 em{font-style:inherit;color:#e9324c}
.path-key{display:flex;gap:20px;font:9px Inter;color:#b798a4;flex-wrap:wrap;justify-content:end}
.path-key span:before{content:'';display:inline-block;width:7px;height:7px;border-radius:50%;margin-right:8px;background:#ef727b;box-shadow:0 0 12px #d93255}
.path-key span:last-child:before{background:#99c1ca;box-shadow:none}
.devil-may-cry .chronicle-route{display:flex;flex-wrap:wrap;overflow:visible;width:88%;max-width:1260px;margin:0 auto 50px;padding:0;gap:3px 17px}
.devil-may-cry .chronicle-route a{position:relative;display:flex;flex:0 1 auto;gap:9px;padding:10px 7px;min-height:52px;border-radius:50%;background:none;color:#c5a6b0}
.devil-may-cry .chronicle-route b{font:italic 21px Georgia;color:#b1586b}
.devil-may-cry .chronicle-route span{font:italic 12px/1.35 Georgia}
.devil-may-cry .chronicle-route small{display:block;font:7px Inter;color:#9c8690;margin-top:5px}
.devil-may-cry .chronicle-route i{width:5px;height:5px}
.devil-may-cry .chronicle-route a:after{content:'';position:absolute;left:10px;right:8px;bottom:3px;height:2px;rotate:-5deg;background:linear-gradient(90deg,#aa203b,transparent);opacity:0}
.devil-may-cry .chronicle-route a:hover:after,.devil-may-cry .chronicle-route a.active:after,.devil-may-cry .chronicle-route a.complete:after{opacity:1}
.devil-may-cry .chronicle-route a.active{background:radial-gradient(ellipse,#7b193437,transparent 70%);color:#ffd1c8}
.devil-may-cry .chronicle-route a.complete{background:none;color:#a7c8ce}
.devil-may-cry .chronicle-route a.complete:after{background:linear-gradient(90deg,#83aeb8,transparent)}
.hunter-wall{display:block;position:relative;isolation:isolate;width:94%;max-width:1350px;padding:0 42px 25px;margin:0 auto;overflow:visible}
.hunter-stage{display:grid;position:relative;isolation:isolate;gap:60px 55px;min-width:0;align-items:start;margin:0 0 125px}
.hunter-stage:last-child{margin-bottom:30px}
.hunter-stage:not(:has(.chronicle-entry:not([hidden]))){display:none}
.stage-heading{grid-column:1/-1;position:relative;isolation:isolate;padding:25px 0 0;min-height:150px}
.stage-heading small{display:block;font:8px Inter;letter-spacing:.18em;color:#bc657a;margin-bottom:12px}
.stage-heading>span{font:900 italic clamp(35px,4vw,58px)/.95 Barlow;letter-spacing:-.025em;color:#e3c6ce;display:block}
.stage-heading p{font:italic 15px/1.6 Georgia;color:#b599a5;margin-top:13px}
.stage-heading>b{position:absolute;left:-25px;top:-20px;z-index:-1;font:italic 180px/.9 Georgia;color:#ad24431c;rotate:-9deg}
.hunter-stage .chronicle-entry{grid-row:2;position:relative;margin:0;min-width:0;overflow:visible;clip-path:none;z-index:1;scroll-margin-top:145px}
.hunter-job{background:none;box-shadow:none;border-radius:0}
.hunter-job:after{display:none}
.game-signature{position:relative;min-height:115px;display:flex;align-items:center;gap:20px;padding:5px 0 15px}
.game-signature img{width:255px;max-width:70%;height:110px;object-fit:contain;object-position:left center;filter:drop-shadow(0 7px 20px #a71a352b)}
.game-signature>span{font:700 italic 11px/1.6 Barlow;letter-spacing:.11em;color:#bd7784;max-width:95px}
.job-art{display:block;position:relative;width:100%;height:300px;padding:0;overflow:hidden;background:#08080b;clip-path:polygon(0 4%,100% 0,100% 92%,0 100%)}
.job-art>img{width:100%;height:100%;object-fit:cover;filter:contrast(1.1);transition:scale .5s,filter .5s}

.job-art:after{content:'';position:absolute;inset:0;background:linear-gradient(0deg,#160d16d0,transparent 50%);pointer-events:none}
.job-heading{display:flex;justify-content:space-between;gap:20px;align-items:center;min-height:45px;padding:10px 2px;background:none}
.job-heading .eyebrow{font-size:8px;letter-spacing:.12em;color:#b996a3}
.job-heading>span:last-child{font:8px Inter;color:#a596a5}
.job-body{display:grid;grid-template-columns:65px minmax(0,1fr);gap:24px;align-items:start;padding:13px 2px 0}

.job-copy h3{font:800 italic 28px/1.08 Barlow;letter-spacing:-.02em;margin:0 0 15px}
.job-copy h3 button,.book-copy h3 button{font:inherit;text-align:left;padding:0}
.job-copy>p{font:11px/1.9 Inter;color:#c2aeb9;max-width:500px}
.entry-edition{font:10px/1.8 Inter;color:#b096a5;margin-top:12px}
.entry-edition summary{cursor:pointer;list-style:none;min-height:40px;display:flex;align-items:center;gap:8px}
.entry-edition summary:before{content:'';width:12px;height:12px;flex-shrink:0;background:var(--accent);mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 4v16M4 12h16' fill='none' stroke='black' stroke-width='2'/%3E%3C/svg%3E") center/contain no-repeat}
.entry-edition[open] summary:before{mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M4 12h16' fill='none' stroke='black' stroke-width='2'/%3E%3C/svg%3E") center/contain no-repeat}
.entry-edition p{padding:7px 0 12px}
.entry-edition .feature-chips{margin:0 0 12px;font-size:8px}
.job-copy .source{font:9px Inter;min-height:44px;padding:11px 0;color:#e78d99}
.job-controls{padding:0 2px 0 86px}
.job-controls .entry-quick-actions{margin-top:7px;background:linear-gradient(100deg,#8f1a3540,transparent);border-radius:30px 4px 30px 4px;--control-accent:var(--entry-accent)}
.devil-may-cry .quick-finish{border-radius:25px 3px 25px 3px}
.devil-may-cry .route-menu-trigger,.devil-may-cry .progress-undo{border-radius:50%;background:#ffffff06}
.hunter-job.status-playing .job-art{filter:drop-shadow(0 0 20px #da2b4b30)}
/* Four selected artworks have individually drawn edges: doorway, fractured mirror, sword slash and ink/smoke. */
.stage-0:before{content:'';position:absolute;inset:0 -20px;background:radial-gradient(ellipse at 25% 30%,#4c203429,transparent 65%);pointer-events:none;z-index:-1}
/* A stepped doorway edge preserves Dante at the center; no artificial rounded arch. */
.job-dmc-1 .game-signature img{width:280px;height:120px}
.job-dmc-1 .game-signature>span{color:#c29685}
.job-dmc-1 .job-art{height:auto;aspect-ratio:596/380;clip-path:url(#dmc-cut-doorway);background:transparent;box-shadow:0 20px 45px #03030555}
.job-dmc-1 .job-art>img{position:absolute;inset:0;object-position:center;filter:contrast(1.04)}
.job-dmc-1 .job-art:hover>img{filter:saturate(1) contrast(1.1)}
.job-dmc-1 .job-art:after{background:linear-gradient(0deg,#130e16 0%,#130e1680 12%,transparent 38%),linear-gradient(90deg,#130e1630,transparent 12%,transparent 88%,#130e1630)}
.job-dmc-1 .job-body{grid-template-columns:76px minmax(0,1fr);gap:25px;padding-top:18px}

.job-dmc-1 .job-copy h3{font:700 italic clamp(28px,2.4vw,36px)/1.12 Georgia,serif;color:#f1dfd1;letter-spacing:-.025em}
.job-dmc-1 .job-controls{padding-left:103px}
.stage-0 .ledger-book{margin-top:170px}
.stage-1{background:radial-gradient(ellipse at 75% 40%,#29507020,transparent 65%)}
.stage-1 .stage-heading>span{color:#b4c5d8}
.stage-1 .stage-heading small{color:#83a5ba}
.job-dmc-2 .game-signature{justify-content:end}
.job-dmc-2 .game-signature img{width:282px;height:105px}
.job-dmc-2 .game-signature>span{order:-1;color:#91b4c7}
.job-dmc-2 .job-art{height:auto;aspect-ratio:16/9;clip-path:url(#dmc-cut-mirror);background:transparent}
.job-dmc-2 .job-art>img{position:absolute;inset:0;object-position:50% 38%;filter:contrast(1.04)}
.job-dmc-2 .job-art:after{background:linear-gradient(0deg,#0a1624dc,transparent 55%),linear-gradient(100deg,#09263460,transparent)}
.job-dmc-2 .job-copy h3{color:#b9d0e1}
.job-dmc-2 .job-copy .source{color:#95b8ce}
.job-dmc-2 .job-controls .entry-quick-actions{background:linear-gradient(100deg,#3354773a,transparent)}
.stage-1 .ledger-book{margin-top:180px}
.stage-2{gap:60px 32px;background:radial-gradient(ellipse at 52% 35%,#90203b25,transparent 60%)}
.stage-2 .stage-heading{min-height:180px;padding-top:45px;padding-right:230px}
.stage-2 .stage-heading>span{color:#ed8791}
.stage-2 .stage-heading>b{font-size:210px;color:#bd2b4426}
.stage-2 .hunter-job{margin-top:85px}
.stage-2 .after-hours{margin-top:235px}
.job-dmc-3 .game-signature{min-height:145px}
.job-dmc-3 .game-signature img{width:290px;height:135px;max-width:100%}
.job-dmc-3 .game-signature>span{display:none}
.job-dmc-3 .job-art{height:auto;aspect-ratio:4/3;clip-path:url(#dmc-cut-slash);background:transparent}
.job-dmc-3 .job-art>img{position:absolute;inset:0;object-position:50% top;filter:contrast(1.04)}

.job-dmc-3 .job-body{grid-template-columns:45px minmax(0,1fr);gap:18px}
.job-dmc-3 .job-controls{padding-left:63px}
.job-dmc-3 .secret-object{top:162px;right:18px}


/* Fortuna's actual moonlit castle and sunset, with the reading tucked beside the hunt. */
.stage-3{padding:20px 0 0}
.stage-3 .stage-heading{min-height:165px}
.stage-3 .stage-heading>span{color:#dfdfec}
.stage-3 .stage-heading small{color:#9daacb}
.fortuna-horizon{position:absolute;inset:-20px -20px 20%;z-index:-1;pointer-events:none;overflow:hidden;mask-image:linear-gradient(0deg,transparent,#000 45%,#000 65%,transparent)}
.fortuna-horizon img{width:100%;height:100%;object-fit:cover;object-position:center 15%;filter:brightness(.4) saturate(.7);opacity:.65}
.job-dmc-4 .game-signature{justify-content:end}
.job-dmc-4 .game-signature img{width:280px;height:135px}
.job-dmc-4 .game-signature>span{order:-1;color:#b4b7d2}
.job-dmc-4 .job-art{height:auto;aspect-ratio:16/9;clip-path:url(#dmc-cut-smoke);background:transparent}
.job-dmc-4 .job-art>img{position:absolute;inset:0;object-position:70% center;filter:contrast(1.04)}
.stage-3 .ledger-book{margin-top:195px}
.fortuna-sunset{grid-column:1/-1;grid-row:3;justify-self:start;width:66%;height:180px;margin:-15px 0 0;rotate:-3deg;position:relative;z-index:1;overflow:hidden;clip-path:polygon(0 6%,100% 0,96% 94%,0 100%)}
.fortuna-sunset img{width:100%;height:100%;object-fit:cover;object-position:center 40%;filter:saturate(.85)}
.stage-4{background:radial-gradient(ellipse at 15% 32%,#4c172737,transparent 65%)}
.stage-4:before{content:'';position:absolute;inset:0 -20px;background:url('assets/blood-ink.svg') center top/110% auto no-repeat;opacity:.17;z-index:-1;pointer-events:none}
.stage-4 .stage-heading>span{color:#d78392}
.job-dmc-5 .game-signature{min-height:155px}
.job-dmc-5 .game-signature img{width:350px;height:165px;max-width:85%}
.job-dmc-5 .game-signature>span{display:none}
.job-dmc-5 .job-art{height:330px;clip-path:polygon(0 5%,45% 0,50% 7%,100% 0,98% 93%,58% 100%,52% 94%,0 100%)}
.job-dmc-5 .job-art>img{object-position:65% center;filter:contrast(1.2) saturate(.85)}
.stage-4 .ledger-book{margin-top:180px}
/* Published covers float above loose, torn manuscript leaves. The anime stays in the shop's blue night. */
.ledger-book,.after-hours{display:grid;position:relative;grid-template-columns:92px minmax(0,1fr);gap:20px;align-items:start;padding:27px 21px 22px;background:none;box-shadow:none;color:#382d37;--ink:#382d37;--muted:#6d5d66;--accent:#872945}
.ledger-book:before{content:'';position:absolute;inset:0;z-index:-1;background:linear-gradient(110deg,#d7c6bd,#eee0cb 60%,#c9b3b8);clip-path:polygon(1% 3%,29% 0,34% 2%,71% 1%,75% 3%,99% 0,98% 18%,100% 23%,99% 78%,97% 82%,100% 98%,67% 100%,62% 98%,26% 100%,23% 98%,0 99%,2% 76%,0 70%);rotate:-2deg;box-shadow:0 14px 40px #0008}
.ledger-book:after{display:none}
.book-heading{grid-column:1/-1;display:flex;align-items:center;gap:10px;min-height:28px}
.book-heading .eyebrow{font:8px Inter;letter-spacing:.1em;color:#715b66}
.book-heading>span:last-child{display:none}
.book-art{display:flex;position:relative;gap:8px;width:100%;align-self:start;margin-top:8px}
.book-art button{position:relative;min-width:0;flex:1;padding:0}
.book-art img{width:100%;height:auto;box-shadow:0 8px 15px #35292b50;rotate:-8deg;transition:rotate .3s}

.book-copy h3{font:700 italic 25px/1.05 Georgia;margin-bottom:15px}
.book-copy>p{font:11px/1.85 Inter;color:#65505d}
.book-copy .entry-edition{color:#79616f;font-size:9px;margin-top:8px}
.book-copy .source{color:#8a2843;font-size:9px;min-height:44px;padding:11px 0}
.book-controls{grid-column:1/-1}
.book-controls .entry-quick-actions{margin:0;background:#5123380a;--control-accent:#92223d;border-radius:25px 3px 25px 3px}
.book-controls .quick-finish{color:#3b2634}
.book-controls .action-glyph{color:#932743}
.book-controls .route-menu-trigger,.book-controls .progress-undo{background:#49253210;color:#64283e}
.double-volume .book-art button:nth-child(2){margin-top:20px}
.double-volume .book-art button:nth-child(2) img{rotate:8deg}
.ledger-book .activity-emblem{width:40px;height:34px;bottom:13px;color:#ffe7d6;background:#542137e0}
.ledger-book .activity-signal{width:25px;height:23px}
.ledger-book .secret-object{right:10px;top:8px;rotate:15deg}
.stage-2 .ledger-book,.stage-2 .after-hours{grid-template-columns:1fr;gap:18px;padding:25px 18px 20px}
.stage-2 .book-art{width:145px;max-width:90%;justify-self:center;margin-bottom:5px}
.stage-2 .after-hours .book-art{width:110px}
.stage-2 .book-copy h3{font-size:24px}
.after-hours{background:none;color:#dfd9e1;--ink:#dfd9e1;--muted:#a7b7c4;--accent:#a1c3c9}
.after-hours:before{content:'';position:absolute;inset:-14px 0;z-index:-1;background:radial-gradient(ellipse at 50% 35%,#223e55c0,transparent 75%)}
.after-hours .book-copy>p{color:#a9b6c5}
.after-hours .book-copy .entry-edition{color:#91a5b4}
.after-hours .book-copy .source,.after-hours .book-heading .eyebrow{color:#adc8cd}
.after-hours .book-controls .quick-finish{color:#e7dbdf}
.after-hours .book-controls .action-glyph{color:#a0c7cd}
.after-hours .book-controls .entry-quick-actions{background:#597d9c15}
.after-hours .book-controls .route-menu-trigger,.after-hours .book-controls .progress-undo{background:#ffffff06;color:#b4b6c4}
/* Red-orb stops, with progress readable even when motion is disabled. */
.path-pin{position:absolute;top:-56px;left:4px;display:flex;align-items:center;gap:11px;min-height:48px;padding:0 8px 0 0;color:#c78392;background:radial-gradient(ellipse,#100b10 40%,transparent 75%);z-index:3}
.path-pin b{display:grid;place-items:center;width:44px;height:44px;border-radius:50% 46% 51% 43%;background:radial-gradient(circle at 32% 25%,#d7788240,#701831 48%,#160e1c 80%);color:#e9bbc0;font:italic 22px Georgia;box-shadow:0 0 18px #be284730,inset 3px 2px 7px #fa82961c;rotate:-8deg}
.path-pin>span{font:italic 11px Georgia;letter-spacing:.08em}
.path-pin.active b{background:radial-gradient(circle at 30% 25%,#ffb1b1,#a72b49 48%,#4d142d);color:#ffebe2;box-shadow:0 0 25px #ed355675}
.path-pin.complete b{background:radial-gradient(circle at 30% 25%,#b0d7de70,#25444f 55%,#0e1a24);color:#cce9ee;box-shadow:0 0 15px #9acbd428}
.path-pin.complete>span{color:#b2cbd1}
.ledger-book .path-pin,.after-hours .path-pin{--ink:#d6a8ad;--accent:#ed6b66}
.journey-wire{position:absolute;inset:0;width:100%;height:100%;z-index:-1;overflow:visible;pointer-events:none}
.journey-wire path{fill:none;stroke-linecap:round;vector-effect:non-scaling-stroke}
.wire-base{stroke:#8c294b70;stroke-width:2.5}
.wire-flow{stroke:#f57d8a;stroke-width:2;stroke-dasharray:1 24 8 64;animation:none;opacity:.65;filter:drop-shadow(0 0 6px #d12149)}
.wire-complete .wire-base{stroke:#91b9c865}
.wire-complete .wire-flow{stroke:#b4d5df;opacity:.45}
.wire-active .wire-flow{stroke:#ffb3ad;opacity:1;stroke-width:3}

.wall-footnote{font:10px/1.9 Inter;color:#a58e9b;max-width:1260px;width:88%;margin:20px auto 0}
.devil-may-cry .chronicle-entry[hidden],.devil-may-cry .chronicle-route a[hidden]{display:none}
.devil-may-cry .status-later,.devil-may-cry .status-skipped{opacity:.65}
.devil-may-cry .chronicle-entry.status-playing{box-shadow:none}
@media(min-width:1800px){.devil-may-cry .hero-art>img{object-position:center 50%}}
@media(max-width:1100px){
 .hunter-wall{padding-inline:32px}.hunter-stage{gap:60px 30px}.game-signature{gap:10px}.game-signature>span{font-size:9px}.game-signature img{width:230px}.ledger-book{grid-template-columns:70px minmax(0,1fr);padding:24px 17px;gap:17px}.book-copy h3{font-size:23px}.job-body{gap:18px;grid-template-columns:45px minmax(0,1fr)}.job-controls{padding-left:65px}.job-copy h3{font-size:26px}.stage-2 .ledger-book{grid-template-columns:1fr}.style-room{gap:30px}.devil-crew{gap:18px}.cast-heading h2{font-size:60px}
}
@media(min-width:761px) and (max-width:1050px){
 .stage-2 #entry-anime-2007{grid-column:1/-1;grid-row:3;grid-template-columns:85px minmax(0,1fr);max-width:75%;justify-self:end;margin-top:20px}.stage-2 #entry-anime-2007 .book-art{width:100%}.stage-2 #entry-anime-2007 .book-copy h3{font-size:26px}.hunter-stage .ledger-book:not(.double-volume){grid-template-columns:1fr}.hunter-stage .ledger-book:not(.double-volume) .book-art{width:90px}.stage-2 .ledger-book{grid-template-columns:1fr}.stage-2 .book-art{width:150px}.stage-2 .hunter-job{margin-top:85px}.stage-1 .ledger-book,.stage-3 .ledger-book{margin-top:175px}.job-dmc-2 .game-signature img{max-width:80%}.job-dmc-4 .game-signature img{max-width:75%}
}
@media(max-width:760px){
 .devil-may-cry .dmc-hero{min-height:730px;align-items:start}.devil-may-cry .hero-art>img{object-position:76% center}.devil-may-cry .hero-art{inset:0;opacity:.75}.devil-may-cry .hero-shade{background:linear-gradient(90deg,#07080cb0,#090b1520),linear-gradient(0deg,#0d0b0e 2%,#0d0b0e15 70%)}.devil-may-cry .hero-copy{width:94%;margin-left:6%;padding:25px 0 80px}.devil-may-cry .hero-logo{width:240px;margin-bottom:33px}.devil-may-cry .hero-copy>.eyebrow{font-size:7px}.devil-may-cry .hero-copy h1{font-size:106px;max-width:300px;margin:28px 0 40px}.devil-may-cry .hero-copy>p{font-size:16px;max-width:230px}.devil-may-cry .hero-buttons{max-width:285px;gap:10px;margin-top:25px}.devil-may-cry .hero-buttons .button{font-size:10px;padding:13px 14px}.hero-side-note{left:6%;right:auto;bottom:39px;text-align:left;gap:8px}.hero-side-note b{font-size:8px}.hero-side-note span{font-size:16px;justify-content:start}.devil-may-cry .hero-coordinate{display:none}.blood-swipe{width:120%;left:-45%;inset-block:18% -12%;opacity:.5}
 .devil-may-cry .journey-summary{padding:24px 0;width:88%;gap:14px;flex-wrap:wrap;margin:0 auto}.devil-may-cry .summary-value{font-size:49px;min-width:85px}.devil-may-cry .summary-middle{min-width:60%}.devil-may-cry .summary-middle b{font-size:10px}.devil-may-cry .summary-resume{width:100%;max-width:none;min-width:0}
 .hunter-ledger{padding-top:45px}.wall-heading{display:block;width:88%;margin-bottom:20px}.wall-heading .eyebrow{font-size:8px}.wall-heading h2{font-size:37px;max-width:300px}.path-key{justify-content:start;font-size:8px;margin-top:20px;gap:18px}
 .devil-may-cry .chronicle-route{width:90%;gap:2px 10px;margin-bottom:35px}.devil-may-cry .chronicle-route a{gap:7px;min-height:50px;padding:9px 5px}.devil-may-cry .chronicle-route span{font-size:11px}.devil-may-cry .chronicle-route b{font-size:18px}.devil-may-cry .chronicle-route small{font-size:6px}.devil-may-cry .chronicle-route i{width:4px;height:4px}
 .hunter-wall{width:96%;padding:0 17px 18px 33px}.hunter-stage,.stage-2{grid-template-columns:1fr;gap:75px;margin-bottom:85px}.stage-heading{min-height:115px;padding-top:15px}.stage-heading small{font-size:6px;letter-spacing:.12em}.stage-heading>span{font-size:36px}.stage-heading p{font-size:12px;max-width:260px;line-height:1.6}.stage-heading>b{font-size:140px;left:-12px;top:-10px}
 .stage-0:before{inset:0 -15px}.stage-4:before{inset:0 -15px}
 .hunter-stage .chronicle-entry{grid-row:auto;margin:0;scroll-margin-top:160px}.game-signature{min-height:110px;padding-bottom:10px;gap:10px}.game-signature img{width:230px;max-width:75%;height:95px}.game-signature>span{font-size:8px;max-width:55px}.hunter-stage .job-art{height:240px}.job-dmc-1 .job-art{height:auto;aspect-ratio:596/380}.job-dmc-1 .game-signature img{width:230px;height:95px}.job-dmc-1 .job-body{grid-template-columns:52px minmax(0,1fr);gap:16px;padding-top:12px}.job-dmc-1 .job-copy h3{font-size:27px}.job-dmc-1 .job-controls{padding-left:68px}.job-heading{min-height:47px;padding:10px 0;gap:8px}.job-heading .eyebrow{font-size:7px}.job-heading>span:last-child{font-size:7px}.job-body,.job-dmc-3 .job-body{grid-template-columns:43px minmax(0,1fr);gap:15px;padding:12px 0 0}.job-copy h3{font-size:26px}.job-copy>p{font-size:11px}.job-controls,.job-dmc-3 .job-controls{padding:0 0 0 58px}.job-copy .source{font-size:9px}.entry-edition{font-size:9px}
 .hunter-stage .ledger-book,.hunter-stage .after-hours{grid-template-columns:70px minmax(0,1fr);gap:15px;padding:24px 15px 18px}.hunter-stage .double-volume{grid-template-columns:93px minmax(0,1fr)}.hunter-stage .book-art,.stage-2 .after-hours .book-art{width:100%;margin-top:5px;max-width:none}.book-copy h3,.stage-2 .book-copy h3{font-size:22px}.book-copy>p{font-size:10px}.book-copy .entry-edition{font-size:9px}.book-heading .eyebrow{font-size:7px}.book-controls{margin-top:0}
 .job-dmc-2 .game-signature,.job-dmc-4 .game-signature{justify-content:start}.job-dmc-2 .game-signature img{max-width:75%;height:95px}.job-dmc-2 .game-signature>span,.job-dmc-4 .game-signature>span{order:0}.job-dmc-3 .game-signature{min-height:125px}.job-dmc-3 .game-signature img{height:120px;width:260px}.job-dmc-4 .game-signature img{height:120px}.job-dmc-5 .game-signature{min-height:145px}.job-dmc-5 .game-signature img{height:145px;width:300px;max-width:100%}.job-dmc-3 .secret-object{top:145px;right:13px}
 .stage-2 .stage-heading{min-height:145px;padding:10px 70px 0 0}.stage-2 .stage-heading>span{font-size:30px;max-width:210px}.stage-2 .stage-heading>b{font-size:140px}.stage-3{padding-top:0}.stage-3 .stage-heading{min-height:120px}.fortuna-horizon{inset:0 -15px 40%}.fortuna-sunset{grid-row:auto;width:100%;height:135px;margin:-20px 0 0}.stage-4:before{background-size:200% auto}
 .path-pin{top:-57px;left:0;gap:10px}.path-pin b{width:42px;height:42px;font-size:22px}.path-pin>span{font-size:10px}.wall-footnote{width:88%;font-size:9px}
 .style-room{grid-template-columns:1fr;gap:40px;width:88%;margin-top:35px;padding:45px 0 50px}.style-intro h2{font-size:70px;max-width:300px}.style-intro>.eyebrow{font-size:7px}.style-intro>p{font-size:16px}.style-tabs button{font-size:8px;padding:15px 3px;min-height:90px}.style-tabs svg{width:35px;height:35px}#style-info{padding:20px 0;gap:15px;min-height:240px}.style-initial{font-size:110px;min-width:65px}#style-info h3{font-size:32px}#style-info p{font-size:11px}
 .devil-cast{margin:35px auto 40px}.cast-heading h2{font-size:48px}.cast-heading .eyebrow{font-size:7px}.sparda-twins{gap:22px}.sparda-twins .cast-art{height:200px}.person-dante .cast-art img{object-position:60% center}.person-vergil .cast-art img{height:150%;margin:0;object-position:center top}.cast-copy{padding:15px 0}.cast-copy h3{font-size:38px}.cast-copy small{font-size:6px;letter-spacing:.05em;line-height:1.7;display:block}.cast-copy p{font-size:10px;line-height:1.8}.devil-crew{grid-template-columns:repeat(2,minmax(0,1fr));gap:22px 17px;margin-top:27px}.devil-crew .cast-art{height:130px}.devil-crew .cast-copy h3{font-size:30px}.devil-crew .cast-copy small{font-size:6px}.devil-crew .cast-copy p{font-size:10px}
 .devil-may-cry .chronicle-ending{padding:50px 6%}.devil-may-cry .chronicle-ending h2{font-size:32px}.devil-may-cry .chronicle-ending .button{margin:5px 0;font-size:10px}
}

/* Scenery recedes behind the art; soft pools of light keep each hunt grounded. */
.hunt-backdrop{position:absolute;inset:65px -20px 8%;overflow:hidden;z-index:-2;pointer-events:none;mask-image:linear-gradient(0deg,transparent,#000 30%,#000 65%,transparent)}
.hunt-backdrop img{width:100%;height:100%;object-fit:cover;object-position:center 20%;filter:blur(3px) brightness(.46) saturate(.55);opacity:.36;scale:1.06}
.stage-0 .hunt-backdrop{inset:0 -20px 0;mask-image:radial-gradient(ellipse at 60% 45%,#000 10%,transparent 75%)}
.stage-0 .hunt-backdrop img{filter:blur(1px) brightness(.42) saturate(.6);opacity:.6}
.stage-1 .hunt-backdrop img{object-position:65% center;filter:blur(2px) brightness(.4) saturate(.45);opacity:.4}
.stage-2 .hunt-backdrop{mask-image:radial-gradient(ellipse at 55% 35%,#000,transparent 74%)}
.stage-2 .hunt-backdrop img{filter:blur(2px) brightness(.48) saturate(.7);opacity:.45}
.stage-4 .hunt-backdrop img{filter:blur(2px) brightness(.38) saturate(.65);opacity:.5}
.hunter-job:before{content:'';position:absolute;inset:110px -20px -25px;z-index:-1;pointer-events:none;background:radial-gradient(ellipse at 50% 20%,#280f2380,transparent 65%),linear-gradient(0deg,#09090cbd,transparent 80%);mask-image:linear-gradient(90deg,transparent,#000 10%,#000 90%,transparent)}
.job-dmc-2:before{background:radial-gradient(ellipse at 50% 15%,#1c344f65,transparent 65%),linear-gradient(0deg,#090b11d9,transparent 80%)}
.job-dmc-3:before{background:radial-gradient(ellipse at 30% 15%,#821b3c45,transparent 65%),radial-gradient(ellipse at 85% 40%,#27437435,transparent 55%),linear-gradient(0deg,#10080ddc,transparent 80%)}
.job-dmc-4:before{background:radial-gradient(ellipse at 50% 10%,#3b4a6940,transparent 65%),linear-gradient(0deg,#0b0c16e0,transparent 80%)}
.job-dmc-5:before{background:radial-gradient(ellipse at 15% 20%,#6b13353d,transparent 65%),linear-gradient(0deg,#0c080edc,transparent 80%)}
.ledger-book{filter:drop-shadow(8px 18px 15px #0007)}
@media(max-width:760px){.hunt-backdrop,.stage-0 .hunt-backdrop{inset-inline:-15px}.hunter-job:before{inset-inline:-12px}.hunt-backdrop img{opacity:.34}.stage-0 .hunt-backdrop img{opacity:.5}}
.hunt-backdrop img{animation:hunt-haze 20s ease-in-out infinite alternate}
@keyframes hunt-haze{to{translate:-8px 5px;scale:1.08}}

.dmc-cut-defs{position:absolute;width:0;height:0;overflow:hidden;pointer-events:none}
@media(max-width:760px){
 .job-dmc-2 .job-art,.job-dmc-4 .job-art{height:auto;aspect-ratio:16/10}
 .job-dmc-3 .job-art{height:auto;aspect-ratio:4/3}
}

/* Open cues sit inside the drawn edges, away from the clipped corners. */
:is(.job-dmc-1,.job-dmc-2,.job-dmc-3) .scene-open{right:9%;bottom:10%}

/* Unboxed games, stationary artwork, and a handwritten chapter trail. */
.devil-may-cry .hunter-job .job-body{grid-template-columns:minmax(0,1fr);gap:0}
.devil-may-cry .hunter-job .job-controls{padding-left:0}
.devil-may-cry .job-art>img,.devil-may-cry .job-art:hover>img{height:100%;margin:0;translate:none;scale:none;transition:none}
.devil-may-cry .book-art button:hover img{rotate:none;scale:none;translate:none}
.devil-may-cry .play-platform{font:600 10px/1.6 Inter;color:#d2bdcc;letter-spacing:0;text-align:right;max-width:65%}
.devil-may-cry .path-pin{background:none;gap:7px}
.devil-may-cry .path-pin b{width:48px;height:44px;border-radius:0;background:linear-gradient(165deg,transparent 22%,#6c193855 23%,#6c193855 70%,transparent 71%);font:italic 36px/.9 Georgia;color:#d69aab;box-shadow:none;rotate:-9deg;text-shadow:2px 3px #180c16}
.devil-may-cry .path-pin.active b{background:linear-gradient(165deg,transparent 22%,#b62c4e80 23%,#b62c4e80 70%,transparent 71%);color:#ffe0d4;box-shadow:none}
.devil-may-cry .path-pin.complete b{background:linear-gradient(165deg,transparent 22%,#39596270 23%,#39596270 70%,transparent 71%);color:#cce4eb;box-shadow:none}
.devil-may-cry .path-pin.complete:after{content:'';width:22px;height:3px;background:#a8cbd5;position:absolute;left:12px;bottom:5px;rotate:-14deg}
.devil-may-cry .wire-base{stroke-width:3;stroke-dasharray:70 6 24 11;stroke:#74304470}
.devil-may-cry .wire-flow{stroke-width:1;stroke-dasharray:13 53;stroke:#bd7a8970;filter:none;animation:none}
.jester-apparition{position:absolute;right:22px;top:-80px;width:260px;height:340px;margin:0;pointer-events:none;z-index:0;rotate:8deg;filter:drop-shadow(0 12px 18px #0007)}
.jester-apparition img{width:100%;height:100%;object-fit:contain}
@media(max-width:760px){.jester-apparition{right:14px;top:-35px;width:130px;height:190px}.devil-may-cry .play-platform{font-size:9px}.devil-may-cry .stage-2 .stage-heading{padding-right:100px}}
